首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JavaScript 反 iframe 嵌入:頂層導向自我防止被框架劫持

     編輯:程式設計疑難解答

核心代碼

if (top.location !== self.location) {
    top.location = self.location;
}

原理

  • top:最頂層視窗(可能是攻擊者頁面)。
  • self:當前視窗(你的頁面)。
  • 若不相等,說明被嵌入 iframe,強制頂層跳轉至自身 URL,打破框架。

現代替代:CSP frame-ancestors

// HTTP 響應頭
Content-Security-Policy: frame-ancestors 'self' https://trusted.com;
  • 瀏覽器原生攔截,無需 JS,更安全、無閃爍。
  • 支援指定允許嵌入的域名。

X-Frame-Options (舊標準)

X-Frame-Options: DENY        // 完全禁止嵌入
X-Frame-Options: SAMEORIGIN  // 同源允許

漸被 CSP 取代,但仍廣泛支援。

注意

  • 若你的頁面**需要**被嵌入(如嵌入式 Widget),請勿部署此代碼/頭部。
  • JS 方案在 `sandbox` 屬性限制下可能失效,CSP 更可靠。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved