最近项目交付后,安全扫描出现了 web类安全扫描发现1类安全问题,点击劫持:x-frame-options头缺失。
点击劫持(用户界面纠正攻击、用户界面纠正攻击、用户界面纠正攻击)是一种恶意技术,它诱使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 :
我们这里项目框架是使用的JFinal 直接在 ProxyHandler 类,对统一返回的消息头中设置:
response.setHeader("X-Frame-Options", "SAMEORIGIN");
即可解决该安全问题