神魂顛倒論壇

 取回密碼
 加入會員
搜尋
檢視: 1176|回覆: 0
收起左側

[安全資訊] X-Frame-Options,防止IFrame式Clickjacking攻擊

[複製連結]
發表於 2022-12-5 19:43:58 | 顯示全部樓層 |閱讀模式
X-Frame-Options 用來防止 IFrame 中的 Clickjacking 攻擊

來源:https://a42033.gitbooks.io/syste ... _Frame_Options.html

其實有新規格 CSP(Content Security Policy)來防護,但因為有些瀏覽器還不支援,所以才會繼續使用X-Frame-Options為主。

若是為了安全掃描、弱點掃描 軟體的結果改善,其實很簡單,往下翻照 IIS 或 Apache 或 nginx 之類的 組態檔加幾行就可以。
IIS 改 web.config 文字檔 或 IIS 圖形介面都可以設定。

防止 釣魚網站 透過 iframe的方式 嵌入自己的網站來偽造混淆。
通常釣魚網站的作法是在 iframe 上面埋一個隱形的DIV區塊來欺騙使用者。

限制符合同源政策的網頁才能用IFrame、Frame或Object內嵌這個網頁,這是瀏覽器的安全防護特性之一,可以避免被味精同意的其他人用 iFrame 方式嵌入網頁。

能夠防止網頁被其他人亂內嵌,就能有效達到防止IFrame式Clickjacking攻擊
(註:點擊刧持還有其他形式,本文只聚焦透過IFrame攻擊的手法),

避免惡意網頁將你的網頁疊加在一般按鈕或連結上方誘使使用者點擊,不知不覺完成開放權限、身份確認… 等操作。

隨便調查一下,發現不只Google,像Facebook、Twitter、Yahoo這些大網站也紛紛在HTTP Header加入X-Frame-Options: DENY或SAMEORIGIN。


釣魚網站的做法

[HTML] 純文本查看 複制代碼
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <style>
        body {
            background-color: #0094ff;
        }
        button {
            background-color: red;
            color: yellow;
        }
    </style>
</head>
<body>
    <button>我是豬頭</button>
</body>
</html>



某駭客黑大發現此網頁未加X-Frame-Options: DENY或SAMEORIGIN防護,心懷不軌搞了個陷阱網頁:先用IFrame內嵌豬頭偵測網頁,利用CSS技巧將IFrame設成position: absolute並調整位置,將「我是豬頭」按鈕蓋在「我是帥哥」按鈕的正上方,再調整CSS opacity透明度使之完全隱形(可參考影片裡的動畫示意)。

使用者只看到「我是帥哥」,按下去一秒變豬頭:






如何檢查

使用Chrome

1. F12打開Network
2. 點選「Doc」尋找該網址的主要Document
3. 點了後會出現詳細清單,選取「Header」
4. 尋找「X-Frame-Options」





如何防止

如果希望整個網站都不准其他網頁內嵌,可以設定網站伺服器在Header中預設加入X-Frame-Options。

IIS的方法

在Header中設定

以IIS為例,可在HTTP回應標頭加入設定,或者使用web.config




也可以直接改 web.config

[Plain Text] 純文本查看 複制代碼
<system.webServer>
  <httpProtocol>
      <customHeaders>
          <add name="X-Frame-Options" value="SAMEORIGIN" />
      </customHeaders>
  </httpProtocol>
</system.webServer>



Apache的方式

請加入以下指令到網站組態設定檔:

[PHP] 純文本查看 複制代碼
Header always append X-Frame-Options SAMEORIGIN


nginx也是改組態檔



請加入以下指令到 http, server 或 location 組態設定檔:


[Plain Text] 純文本查看 複制代碼
add_header X-Frame-Options SAMEORIGIN;



HAProxy 組態檔

請加入以下指令到 frontend, listen, 或 backend 組態設定檔:


[Plain Text] 純文本查看 複制代碼
rspadd X-Frame-Options:\ SAMEORIGIN


X-Frame-Options



參數說明:

DENY
表示文件無論如何都不能被嵌入到 frame 中,即使是自家網站也不行。

SAMEORIGIN
唯有當符合同源政策下,才能被嵌入到 frame 中。

ALLOW-FROM uri
唯有列表許可的 URI 才能嵌入到 frame 中。




新的規則: CSP , frame-ancestors

針對Cross Site Scripting這類攻擊,網頁安全有個新規格-CSP(Content Security Policy),其中定義了 frame-ancestors 可取代 X-Frame-Options

但因為很多瀏覽器還不支援,現階段要防範網頁被內嵌仍是以 X-Frame-Options 為主。
















相關文章

您需要登入後才可以回帖 登入 | 加入會員

本版積分規則

Archiver|手機版|小黑屋|Flash2u論壇

GMT+8, 2024-5-3 00:33 , Processed in 0.082757 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回覆 回到頂端 返回清單