1. 程式人生 > 其它 >window.name和postMessage跨域詳解

window.name和postMessage跨域詳解

文章不易,請關注公眾號 毛毛蟲的小小蠟筆,多多支援,謝謝。

 

概念

window.name

1、在一個視窗還沒關閉之前,同一個視窗的所有頁面都共享同一個window.name。

這個視窗可理解為chrome瀏覽器的一個tab標籤頁面。另外,從一個頁面中跳轉到另一個頁面後,這些頁面都共享同一個window.name。

2、每個頁面都能讀和寫window.name。

這個可能就是安全問題的來源。

3、window.name在chrome上可儲存小於等於2MB的資料。

postMessage

可以安全地實現的跨源通訊。

語法:
otherWindow.postMessage(message, targetOrigin, [transfer]);

事件:
window.addEventListener("message", receiveMessage, false);
message的屬性有:data, origin, source

 

安全問題比較

攻擊者頁面:A
受害者頁面:B

 

最後

  • 文章不易,請關注公眾號 毛毛蟲的小小蠟筆,多多支援,謝謝。
  • 有疑問和問題,請留言。
  • 如果覺得文章還可以,請點贊或收藏,謝謝。