首頁 >web前端 >js教程 >如何從不同子網域上的 Iframe 存取父 URL?

如何從不同子網域上的 Iframe 存取父 URL?

DDD
DDD原創
2024-11-17 15:49:02584瀏覽

How Can I Access the Parent URL from an Iframe on a Different Subdomain?

從 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 是允許,避免安全錯誤。

    document.referrer 在某些情況下可能不會總是傳回正確的 URL。
  • document.location 引用 iframe 文件的 URL。

以上是如何從不同子網域上的 Iframe 存取父 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn