首页 » 安全知识库 » WEB安全原理 » 点击劫持 » 正文

点击劫持(ClickJacking)

1.什么是点击劫持?(来自维基百科)

       点击劫持(clickjacking)是一种在网页中将恶意代码等隐藏在看似无害的内容(如按钮)之下,并诱使用户点击的手段。该术语最早由雷米亚·格罗斯曼(Jeremiah Grossman)与罗伯特·汉森(Robert Hansen)于2008年提出。这种行为又被称为界面伪装(UI redressing)。

       点击劫持可以被看成是责任混淆问题(confused deputy problem)的一个实例。
       举例来说,如用户收到一封包含一段视频的电子邮件,但其中的“播放”按钮并不会真正播放视频,而是链入一购物网站。这样当用户试图“播放视频”时,实际是被诱骗而进入了一个购物网站。
       通过在客户端安装NoScript扩展等手段可以防止点击劫持的发生。

2.点击劫持的场景

      使用透明的iframe,覆盖在网页上,然后诱骗用户点击网页进行相关操作,而用户实际上点击的是覆盖在网页上的iframe。

3.解决方案

       使用 HTTP X-Frame-Options 。“X-Frame-Options 有三个值如下:

DENY:浏览器会拒绝当前页面加载任何frame页面;
SAMEORIGIN:frame页面的地址只能为同源域名下的页面;
ALLOW-FROM origin:允许frame加载的页面地址;

具体设置方法:

Apache配置:

Header always append X-Frame-Options SAMEORIGIN

Nginx配置:

add_header X-Frame-Options SAMEORIGIN;

IIS配置:

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

发表评论