½ðÄê»á

½ðÄê»á-(Öйú)½ð×ÖÕÐÅÆ,ÐÅÓþÖÁÉÏ
¿çÓòͨÐÅ·½·¨
ÈÕÆÚ£º2024Äê10ÔÂ09ÈÕ     ÐÂÎÅ·ÖÀࣺ ¼¼ÊõÖÐÐÄ      ä¯ÀÀ£º318´Î

ƽʱÊÂÇéÖлáÓöµ½Ò³ÃæǶÌ×µÄÇé¿ö£¬Ò»°ãÊÇÓà ½â¾ö¡£¸¸×ÓÒ³Ãæ¿çÓòµÄÇé¿ö¿ÉÒÔͨ¹ýpostMessageÀ´ÊµÏÖͨÐÅ¡£

otherWindow.postMessage(message, targetOrigin, [transfer])

ÆäÖУº

1.otherWindow£ºÄ¿±ê´°¿Ú¡£ºÃ±È µÄ contentWindow ÊôÐÔ

2.message£º½«Òª·¢Ë͵½ÆäËû ´°¿Ú µÄÊý¾Ý¡£

3.targetOrigin£ºÄ¿±ê´°¿ÚµÄÓò¡£ÆäÖµ¿ÉÒÔÊÇ×Ö·û´®"*"£¨ÌåÏÖÎÞÏÞÖÆ£©»òÕßÒ»¸ö URI¡£²»ÌṩȷÇÐµÄ targetOrigin ½«µ¼ÖÂÊý¾Ý鶵½ÈκζÔÊý¾Ý¸ÐÐËȤµÄ¶ñÒâÕ¾µã¡£

4.transfer£º¿ÉÑ¡²ÎÊý£¬¸ß¼¶Ó÷¨¡£ºÍmessage ͬʱͨ±¨µÄ Transferable ¹¤¾ß. ÕâЩ¹¤¾ßµÄËùÓÐȨ½«±»×ªÒƸøÏûÏ¢µÄ½ÓÊÕ·½£¬¶ø·¢ËÍÒ»·½½«²»ÔÙ±£ÓÐËùÓÐȨ¡£

ÏÖÔÚÓÐÁ½¸ö²î±ðÔ´µÄ ǶÌ×Ò³Ã棬¸¸Ò³Ãæ http://127.0.0.1:8001/parent.html,×ÓÒ³Ãæ http://127.0.0.1:8002/child.html£¬ÆäÖи¸Ò³ÃæǶÌײ¿·Ö´úÂëÈçÏ£º

< id="" src="http://127.0.0.1:8002/child.html"></>

1.¸¸Ò³Ãæ·¢ËÍÐÅÏ¢£¬×ÓÒ³Ãæ½ÓÊÕÐÅÏ¢

// ¸¸Ò³Ãæ·¢ËÍÐÅÏ¢

const = document.getElementById('');

. = function () {

.contentWindow.postMessage('hello, child!', 'http://127.0.0.1:8002');

}

// ×ÓÒ³Ãæ½ÓÊÕÐÅÏ¢

window.addEventListener('message', e => {

// Í¨¹ýorigin¶ÔÏûÏ¢½øÐйýÂË£¬ÖÆÖ¹Ôâµ½XSS¹¥»÷

if (e.origin === 'http://127.0.0.1:8001') {

console.log(e.origin) // ¸¸Ò³ÃæËùÔÚµÄÓò 

console.log(e.data) // ¸¸Ò³Ãæ·¢Ë͵ÄÏûÏ¢, hello, child!

}

}, false);

2.×ÓÒ³Ãæ·¢ËÍÐÅÏ¢£¬¸¸Ò³Ãæ½ÓÊÕÐÅÏ¢

// ×ÓÒ³Ãæ

window.parent.postMessage('hello, parent!', 'http://127.0.0.1:8001');

// ¸¸Ò³Ãæ

window.addEventListener('message', e => {

// Í¨¹ýorigin¶ÔÏûÏ¢½øÐйýÂË£¬ÖÆÖ¹Ôâµ½XSS¹¥»÷

if (e.origin === 'http://127.0.0.1:8002') {

console.log(e.origin) // ×ÓÒ³ÃæËùÔÚµÄÓò

console.log(e.data)  // ×ÓÒ³Ãæ·¢Ë͵ÄÏûÏ¢, hello, parent!

}

}, false);

ͨ¹ýpostMessageºÍwindow.addEventListener('message', e => { ... })ÅäºÏʹÓã¬ÎÒÃǾÍÄܹ»Íê³É¿çÓò ¸¸×ÓÒ³ÃæµÄͨÐÅ¡£ËäÈ»¹ØÓÚͬԴµÄ ¸¸×ÓÒ³ÃæÒ²¿ÉÒÔ½ÓÄÉpostMessageµÄ·½·¨À´·¢ËͽÓÊÕÐÅÏ¢¡£

½ðÄê»á-(Öйú)½ð×ÖÕÐÅÆ,ÐÅÓþÖÁÉÏ

°æȨËùÓУº ½ðÄê»á ±¸°¸ºÅ£º½úICP±¸09004627ºÅ-2   ½ðÄê»á-(Öйú)½ð×ÖÕÐÅÆ,ÐÅÓþÖÁÉÏ

ÓÊÏä

keda@sxkeda.com

µç»°

400-0351-150

΢ÐÅ

½ðÄê»á-(Öйú)½ð×ÖÕÐÅÆ,ÐÅÓþÖÁÉÏ

רÊô
¿Í·þ

ÁôÑÔ

ÓҲർº½

ÍøÕ¾µØͼ
ÓÑÇéÁ´½Ó£ºÃÀʨ¹ó±ö»á  k8¿­·¢ÌìÉúÓ®¼Ò  ÈËÉú¾ÍÊDz©×ðÁú¿­Ê±  ÀûÀ´¹ú¹ú¼ÊÍøÕ¾  Æ½²©pinnacle  ÈËÉú¾ÍÊDz©  z6comÈËÉú¾ÍÊDz©  ¿­·¢K8  k8¿­·¢¼¯ÍÅ  k1ÌåÓý  ×ðÁú¿­Ê±  k8¿­·¢¹ÙÍøÈë¿Ú  k8¿­·¢ÌìÉúÓ®¼ÒÒ»´¥¼´·¢  ×ðÁú¿­Ê±  AG¾ÅÓλá