Web伺服器點選劫持(ClickJacking)的安全防範
阿新 • • 發佈:2019-01-01
一.介紹
ClickJacking即點選劫持,是一種將惡意程式碼經過處理使其變成透明、不可見的iframe,並將其覆蓋在一個網頁上,然後誘使使用者在該網頁上進行點選操作。通過改變iframe的在頁面的位置,可以誘使使用者正好點選我們設定好的透明iframe。
二.防禦
1.Frame Busting
這種方式是通過寫JavaScript來禁止iframe巢狀,因為可以輕易饒過,所以這裡不介紹了。具體攻防參照
http://seclab.stanford.edu/websec/framebusting/framebust.pdf
2.設定HTTP請求頭(X-Frame-Options)
X-Frame-Options HTTP 響應頭,可以指示瀏覽器是否應該載入一個iframe中的頁面。網站可以通過設定X-Frame-Options阻止站點內的頁面被其他頁面嵌入從而防止點選劫持。
X-Frame-Options共有三個值:
DENY:任何頁面都不能被嵌入到iframe或者frame中。
SAMEORIGIN:頁面只能被本站頁面嵌入到iframe或者frame中。
ALLOW-FROM URI:頁面自能被指定的Uri嵌入到iframe或frame中。
例:以限制任何頁面都不能被嵌入到iframe為例,分別在apache、IIS和Nginx中配置。
(1).apache配置
修改httpd.conf,新增下面內容。
Header always append X-Frame-Options DENY
如果同一臺apache伺服器上有多個站點,只想針對其中一個站點進行配置,可以修改.htaccess檔案,新增如下內容:
Header append X-FRAME-OPTIONS "DENY"
(2).IIS配置
在web站點的web.config中配置。
<system.webServer>
......
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="DENY" />
</customHeaders>
</httpProtocol>
......
</system.webServer>
(3).Nginx配置
修改nginx.conf,在server下新增下面內容。
add_header X-Frame-Options "DENY";
新增完成如下:
server{
listen 80;
server_name www.dqiang.com;
index index.html;
add_header X-Frame-Options "DENY";
}