從 iframe 存取父級 URL
使用 iframe 時,通常需要從 iframe 內存取父級頁面的 URL。但是,如果 iframe 和父頁面不在同一子網域上,這可能會出現問題。
跨站腳本和子網域
跨站腳本 (XSS) )在使用者信任的網頁上執行惡意腳本時就會發生。為了防止XSS,我們實施了更嚴格的安全措施,並且這些措施延伸到了iframe。
如果iframe和父頁面不在同一個子網域,即使它們在同一個網域,也會認為存取跨網站腳本編寫。因此,使用下列技術從 iframe 檢索父頁面的 URL 將導致存取被拒絕錯誤。
parent.document.location parent.window.location
訪問瀏覽器 URL
雖然不可能直接訪問父頁的 URL,但有一種解決方法可以獲取瀏覽器的 URL,即主頁的 URL。為此:
此程式碼檢查 iframe 和父頁是否不在同一 URL 上。如果它們不同,它會使用 document.referrer 來取得連結到 iframe 的頁面的 URL。否則,它使用 document.location.href 來取得目前(iframe)文件的 URL。
var url = (window.location != window.parent.location) ? document.referrer : document.location.href;
附加說明
window.parent.location 是允許,避免安全錯誤。
以上是如何從不同子網域上的 Iframe 存取父 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!