日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

web安全(3)-- ClickJacking(点击劫持)

發(fā)布時(shí)間:2023/12/16 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web安全(3)-- ClickJacking(点击劫持) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

“Clickjacking(點(diǎn)擊劫持)是由互聯(lián)網(wǎng)安全專(zhuān)家羅伯特·漢森和耶利米·格勞斯曼在2008年提出的。是一種視覺(jué)欺騙手段,在web端就是iframe嵌套一個(gè)透明不可見(jiàn)的頁(yè)面,讓用戶(hù)在不知情的情況下,點(diǎn)擊攻擊者想要欺騙用戶(hù)點(diǎn)擊的位置。”

假設(shè)你訪(fǎng)問(wèn)一個(gè)web站點(diǎn)并看到如下的頁(yè)面:


免費(fèi)的午餐誰(shuí)都喜歡,當(dāng)你滿(mǎn)懷期待的點(diǎn)擊按鈕“WIN”的時(shí)候,恭喜你,你已經(jīng)被點(diǎn)擊劫持了。你實(shí)際點(diǎn)擊的鏈接如下:


這是登錄網(wǎng)上銀行之后的一個(gè)轉(zhuǎn)賬鏈接,轉(zhuǎn)移你的全部資產(chǎn)給Kim Dotcom先生。但是你根本你沒(méi)有看到這個(gè)頁(yè)面,像做夢(mèng)一樣。這只是一個(gè)簡(jiǎn)單的示例,實(shí)現(xiàn)上在網(wǎng)上銀行轉(zhuǎn)賬不會(huì)這么簡(jiǎn)單,但是卻告訴我們一個(gè)道理,訪(fǎng)問(wèn)網(wǎng)頁(yè)和看魔術(shù)表演一樣,看到的不一定都是真的。

下面我們具體討論下點(diǎn)擊劫持的內(nèi)部機(jī)制,和防御措施。

1.1點(diǎn)擊劫持(clickjacking attacks

點(diǎn)擊劫持的表象一般是用戶(hù)點(diǎn)擊了頁(yè)面的A元素,但是實(shí)際上接收點(diǎn)擊事件的卻是另外一個(gè)元素。

現(xiàn)在改變下頁(yè)面內(nèi)個(gè)元素的透明度,再來(lái)看下剛才的頁(yè)面。


我們可以看到,在ipad頁(yè)面是上部還有個(gè)層,實(shí)際上是一個(gè)iframe,現(xiàn)在的透明度為50%,實(shí)際的頁(yè)面中它的透明度為0%,雖然被隱藏不可見(jiàn),但是隨時(shí)都可以被激活。

在?Firefox的3D視圖下,觀察這個(gè)頁(yè)面更明顯。


被隱藏的iframe在IPAD頁(yè)面的上部,同時(shí)轉(zhuǎn)款的鏈接正好在“WIN”的上方,因?yàn)樵O(shè)置了透明度,用戶(hù)只能看到“WIN”,但實(shí)際點(diǎn)擊的是轉(zhuǎn)款。

攻擊者的頁(yè)面內(nèi)容可能是這樣的:

<div style="position: absolute; left: 10px; top: 10px;">Hey - we're giving away iPad minis!!! Just click the WIN button and it's yours!!! </div> <div style="position: absolute; left: 200px; top: 50px;"><img src="http://images.apple.com/my/ipad-mini/overview/images/hero.jpg" width="250"> </div> <div style="position: absolute; left: 10px; top: 101px; color: red; font-weight: bold;">>> WIN <<</div> <iframe style="opacity: 0;" height="545" width="680" scrolling="no" src="http://mybank/Transfer.aspx"></iframe>

代碼就是這么簡(jiǎn)單,下面我們觀察一下點(diǎn)擊“WIN”時(shí)實(shí)際上點(diǎn)擊“轉(zhuǎn)款”鏈接時(shí)的http請(qǐng)求信息。


從圖中標(biāo)記的地方,可以看到請(qǐng)求的實(shí)際地址和身份驗(yàn)證的cookie信息。當(dāng)然這樣的攻擊能成功,在于用戶(hù)已經(jīng)登錄的網(wǎng)上銀行。這樣的攻擊行為和跨站請(qǐng)求偽造很類(lèi)似。

下面我們討論下針對(duì)點(diǎn)擊劫持的基本防御方法。

1.2 Frame busting

這是在頁(yè)面上通過(guò)腳本(JS)來(lái)防止點(diǎn)擊劫持或者iframe惡意請(qǐng)求的方式,本文不做介紹,詳見(jiàn)http://seclab.stanford.edu/websec/framebusting/framebust.pdf,烏云有篇類(lèi)似的中文文章共參考http://drops.wooyun.org/papers/104。

frame busting是指利用js判斷l(xiāng)ocation以防止網(wǎng)頁(yè)被別人iframe內(nèi)嵌的一個(gè)實(shí)現(xiàn) 。

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

但是可以通過(guò)onbeforeunload事件來(lái)阻止這種跳轉(zhuǎn)。

<script> window.οnbefοreunlοad=function(){window.onbeforeunload = null;return "Maybe you want to leave the page, before you become rich?" } </script>

參考:http://javascript.info/tutorial/clickjacking


1.3 The X-Frame-Options

X-Frame-Options HTTP 響應(yīng)頭,可以指示瀏覽器是否應(yīng)該加載一個(gè)iframe中的頁(yè)面。網(wǎng)站可以通過(guò)設(shè)置X-Frame-Options阻止站點(diǎn)內(nèi)的頁(yè)面被其他頁(yè)面嵌入從而防止點(diǎn)擊劫持。

1.3.1 X-Frame-Options

X-Frame-Options共有三個(gè)值:

DENY

任何頁(yè)面都不能被嵌入到iframe或者frame中。

SAMEORIGIN

頁(yè)面只能被本站頁(yè)面嵌入到iframe或者frame中。

ALLOW-FROM Uri

頁(yè)面自能被指定的Uri嵌入到iframe或frame中。

1.3.2 Apache配置X-Frame-Options

在站點(diǎn)配置文件httpd.conf中添加如下配置,限制只有站點(diǎn)內(nèi)的頁(yè)面才可以嵌入iframe。

Header always append X-Frame-Options SAMEORIGIN

配置之后重啟apache使其生效。該配置方式對(duì)IBM HTTP Server同樣適用。

如果同一apache服務(wù)器上有多個(gè)站點(diǎn),只想針對(duì)一個(gè)站點(diǎn)進(jìn)行配置,可以修改.htaccess文件,添加如下內(nèi)容:

Header append X-FRAME-OPTIONS "SAMEORIGIN"

1.3.3 Nginx 配置X-Frame-Options

?nginx/conf文件夾下,修改nginx.conf?,添加如下內(nèi)容:

add_header X-Frame-Options "SAMEORIGIN";


重啟Nginx服務(wù)。

1.3.4 IIS配置X-Frame-Options

在web站點(diǎn)的web.config中配置:

<system.webServer>...<httpProtocol><customHeaders><add name="X-Frame-Options" value="SAMEORIGIN" /></customHeaders></httpProtocol>... </system.webServer>

1.3.5 結(jié)果

在 Firefox 嘗試加載 frame 的內(nèi)容時(shí),如果 X-Frame-Options 響應(yīng)頭設(shè)置為禁止訪(fǎng)問(wèn)了,那么 Firefox 會(huì)用 about:blank 展現(xiàn)到 frame 中。也許從某種方面來(lái)講的話(huà),展示為錯(cuò)誤消息會(huì)更好一點(diǎn)。

1.4 瀏覽器兼容性

桌面瀏覽器:

特性ChromeFirefox (Gecko)Internet ExplorerOperaSafari特性AndroidChrome Android 版Firefox 移動(dòng)版 (Gecko)IE 移動(dòng)版Opera 移動(dòng)版Safari 移動(dòng)版
基礎(chǔ)支持4.1.249.10423.6.9 (1.9.2.9)8.010.54.0
ALLOW-FROM 支持Not supported18.0 (18.0) bug 6901688.0??Not supported WebKit bug 94836
基礎(chǔ)支持??????

參考:http://www.cnblogs.com/xuanhun/p/3610981.html?utm_source=tuicool&utm_medium=referral

?

總結(jié)

以上是生活随笔為你收集整理的web安全(3)-- ClickJacking(点击劫持)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。