利用网页内嵌 Frame 来盗链和流量导入比较常见,也可以用于 XSS 攻击,如果中招的话,可以通过设置 X-Frame-Options 到 HTTP 响应头来解决。解决方法只对支持 X-Frame-Options 的浏览器有效。
X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 ,
使用 HTTP 响应头信息中的设置 X-Frame-Options 属性
使用 X-Frame-Options 的属性参数:
DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN:表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM:表示该页面可以在指定来源的 frame 中展示。
如果你自己不用 frame 也要防止别人用 frame 可以设置为 DENY,如果你自己用 frame 但要防止别人用 frame 可以设置为 SAMEORIGIN
在 Nginx 的配置中增加
add_header X-Frame-Options SAMEORIGIN;
在 Haproxy 的配置增加
rspadd X-Frame-Options:\ SAMEORIGIN
即可有效避免 Frame 的 XSS 攻击。
原理参考: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options