Web服务器点击劫持(ClickJacking)的安全防范

Posted 享叔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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";

以上是关于Web服务器点击劫持(ClickJacking)的安全防范的主要内容,如果未能解决你的问题,请参考以下文章

《白帽子讲WEB安全》学习笔记之第5章 点击劫持(clickjacking)

Web安全之点击劫持(ClickJacking)

点击劫持(ClickJacking)

点击劫持(ClickJacking)

点击劫持(ClickJacking)漏洞挖掘及实战案例全汇总

web安全之点击劫持