Web 漏洞分析與防護之點擊劫持(三)

原文地址:Web 漏洞分析與防護之點擊劫持(三)
博客地址:http://www.extlight.comjavascript

1、全稱

點擊劫持,顧名思義,用戶點擊某個按鈕,卻觸發了不是用戶真正意願的事件。html

2、原理

用戶在登錄 A 網站的系統後,被攻擊者誘惑打開第三方網站,而第三方網站經過 iframe 引入了 A 網站的頁面內容,用戶在第三方網站中點擊某個按鈕(被裝飾的按鈕),其實是點擊了 A 網站的按鈕。java

3、演示攻擊

演示圖以下:瀏覽器

image

用戶登陸論壇系統後,被攻擊者誘騙點擊第三方網站,並在第三方網站中點擊某個按鈕(鼠標無法錄製),結果卻觸發了論壇系統的發言請求。工具

咱們xian 查看「點擊劫持.html」文件的源碼:網站

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>點擊劫持</title>
</head>
<body style="background: url(bg.jpg) no-repeat;">
    <iframe style="opacity: 0" src="http://localhost:8080/article/articleList" width="740" height="460"></iframe>
</body>
</html>

bg.jpg 就是顯示美女字樣的圖片,頁面使用 iframe 元素引用論壇系統的文章界面,將 iframe 透明化。url

咱們經過瀏覽器調試工具查看該頁面的元素,修改 iframe 的 opacity 爲 0.5 ,結果以下:調試

image

從上圖可知,攻擊者經過圖片做爲頁面背景,隱藏了用戶操做的真實界面,從而使用戶在點擊第三方網站的按鈕時,其實是觸發了論壇系統的發表按鈕。code

4、防護

從上文介紹的內容可知,點擊劫持攻擊的前提是第三方網站使用 iframe 引入目標網站的頁面,咱們禁止目標網站被嵌套便可。orm

4.1 javascript 禁止內嵌

在目標網站頁面添加以下代碼:

<script>
    if (top.location != window.location) {
        top.location = window.location;
    }
</script>

當第三方頁面引用目標網站後,會自動跳回到目標網站。

缺點:iframe 使用 sandbox="allow-forms" 時防護就失效。

4.2 X-FRAME-OPTIONS 禁止內嵌

X-Frame-Options HTTP 響應頭是用來給瀏覽器指示容許一個頁面能否在 <frame> 或者 <object> 中展示的標記。(推薦使用)

4.3 輔助手段

因爲點擊劫持只須要用戶簡單的點擊按鈕就觸發事件,咱們能夠增長用戶的操做成本,從而讓用戶有所警覺。如:設置驗證碼等。

5、參考資料

相關文章
相關標籤/搜索