1. 程式人生 > >Web伺服器點選劫持(ClickJacking)的安全防範

Web伺服器點選劫持(ClickJacking)的安全防範

一.介紹

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";
}