李大仁博客

X-Frame-Options防止来自Frame的盗链或XSS攻击

利用网页内嵌Frame来盗链和流量导入比较常见,也可以用于XSS攻击,如果中招的话,可以通过设置 X-Frame-Options到HTTP响应头来解决。解决方法只对支持X-Frame-Options的浏览器有效。

X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame>, <iframe> 或者 <object> 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。

使用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

Exit mobile version