WEB安全~X-Frame-Options

张占岭發表於2024-05-06

X-Frame-Options 是一個HTTP響應頭,用於控制網頁是否可以巢狀在 <frame>, <iframe>, <embed> 或者 <applet> 中。透過設定 X-Frame-Options 頭部,網站管理員可以防止網頁被巢狀到其他網站的框架中,從而有效防範點選劫持等安全風險。下面是關於 X-Frame-Options 的介紹:

1. 作用:

  • X-Frame-Options 頭部用於指示瀏覽器是否允許當前頁面在 <frame>, <iframe>, <embed> 或者 <applet> 中顯示。
  • 可以防止點選劫持攻擊,保護使用者資料和隱私。

2. 常見取值:

  • DENY 表示拒絕頁面在任何框架中顯示,即不允許巢狀。
  • SAMEORIGIN 表示只允許頁面在相同域名的框架中顯示,防止跨域巢狀。

3. 配置方式:

  • 在HTTP響應頭中新增 X-Frame-Options 欄位,並指定為 DENYSAMEORIGIN,如 X-Frame-Options: DENY
  • 可以根據具體需求設定不同的取值來限制頁面的巢狀行為。

4. 優勢:

  • 防止點選劫持: 透過限制頁面的巢狀行為,有效防範點選劫持等安全風險。
  • 提高網站安全性: 增強網站的安全性,保護使用者資料和隱私資訊不受攻擊。

5. 注意事項:

  • 合理配置: 根據網站實際情況和安全需求,選擇合適的 X-Frame-Options 配置。
  • 與其他安全頭部結合使用: 可以將 X-Frame-Options 與其他安全相關的 HTTP 頭部一起使用,共同加固網站的安全防護。

透過配置適當的 X-Frame-Options 頭部,可以有效地防止網頁被巢狀到其他網站的框架中,提升網站的安全性,保護使用者資料和隱私資訊。

常用配置

  • 只容許被baidu.com這個域名巢狀iframe:ALLOW_FROM baidu.com,它包括了子域名和不同埠等,例如a.baidu.com,b.baidu.com:8081等
  • 只被同域名網站巢狀:SAMEORIGIN (在a.hello.com中配置,那麼在b.hello.com中也無法巢狀它)
  • 拒絕所有網站巢狀:DENY
  • 不配置X-Frame-Options:表示開放所有,沒有保護
  • 容許本域名和baidu.com進行巢狀:SAMEORIGIN;ALLOW_FROM baidu.com

參考資料:http://tools.ietf.org/html/rfc7034

相關文章