点击劫持(用户界面纠正攻击、用户界面纠正攻击、用户界面纠正攻击)是一种恶意技术,它诱使Web用户点击与用户所点击内容不同的内容,从而可能在点击看似无害的网页时泄露机密信息或控制其计算机。 服务器没有返回x-frame-options头,这意味着该网站可能面临点击劫持攻击的风险。x-frame-options HTTP响应头可用于指示是否允许浏览器呈现框架或iframe中的页面。网站可以通过确保其内容不嵌入其他网站来避免点击劫持攻击
修改web服务器配置,添加X-frame-options响应头。赋值有如下三种:
(1)DENY:不能被嵌入到任何iframe或frame中。
(2)SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。
(3)ALLOW-FROM uri:只能被嵌入到指定域名的框架中。
一般我们选择使用 SAMEORIGIN : response.setHeader(“X-Frame-Options”, “SAMEORIGIN”);即可解决该安全问题。
下面是两个测试: 百度的响应头包含X-Frame-Options,如下:
测试代码:
<iframe style="width:200px;height:200px;" src="https://www.baidu.com">
</iframe>
效果:
可以看到百度无法被嵌入到我们网站中,控制台有报错如下:
再换到CSDN测一下,截止到我测试的时间,CSDN是没有设置这个头的,测试代码如下:
<iframe style="width:200px;height:200px;" src="https://www.csdn.net/">
</iframe>
结果是CSDN可以被成功潜入进来。效果如下:
Q.E.D.