(一)安全防護:X-Frame-Options(點擊劫持)
漏洞描述:
點擊劫持(ClickJacking)是一種視覺上的欺騙手段。攻擊者使用一個透明的iframe,覆蓋在一個網頁上,然后誘使用戶在網頁上進行操作,此時用戶將在不知情的情況下點擊透明的iframe頁面。通過調整iframe頁面的位置,可以誘使用戶恰好點擊在iframe頁面的一些功能性按鈕上。
HTTP響應頭信息中的X-Frame-Options,可以指示瀏覽器是否應該加載一個iframe中的頁面。如果服務器響應頭信息中沒有X-Frame-Options,則該網站存在ClickJacking攻擊風險。網站可以通過設置X-Frame-Options阻止站點內的頁面被其他頁面嵌入從而防止點擊劫持。
解決方案:
修改web服務器配置,添加X-Frame-Options響應頭。賦值有如下三種:
1、DENY:不能被嵌入到任何iframe或者frame中。
2、SAMEORIGIN:頁面只能被本站頁面嵌入到iframe或者frame中
3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中
apache可配置http.conf如下:
<IfModule headers_module> Header always append X-Frame-Options "DENY" </IfModule>
比如如果我們使用phpstudy搭建的環境,我們可以 其他選項菜單—> php擴展及設置—>Apache模塊,勾選 headers_module 模塊,然后在Apache的配置文件 httpd.conf 中的空白行加入 Header always append X-Frame-Options SAMEORIGIN 即可!
加之前:
加之后:
測試網站是否設置了X-Frame-Options
將如下的代碼中iframe中的鏈接換成待測網站的,保存為.html文件,本地打開。如果打開的頁面中顯示了待測的網站,則說明沒有設置,反之設置了。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" >
<title>點擊劫持測試</title>
</head>
<body>
<iframe src="http://www.xxx.com/" width="500" height="500" frameborder="10"> </iframe>
</body>
</html>