乐闻世界logo
搜索文章和话题

如何在iframe上设置“X-Frame-Options”?

4 个月前提问
3 个月前修改
浏览次数25

1个答案

1

X-Frame-Options 是一个HTTP响应头,它用来控制页面是否可以在 <iframe><frame><embed> 或者 <object> 中展示。这个响应头可以用来避免点击劫持攻击。X-Frame-Options 可以设置为以下几个值之一:

  • DENY:表示该页面不允许在任何框架中显示,即使是在相同的域名的页面中也不行。
  • SAMEORIGIN:表示该页面可以在相同域名的框架中显示。
  • ALLOW-FROM uri:表示该页面可以在指定来源的框架中显示;然而请注意,这个值已被废弃,并不被所有的浏览器支持。

要设置 X-Frame-Options,你需要配置你的web服务器来添加这个HTTP响应头。下面是一些常见web服务器设置 X-Frame-Options 的示例:

Apache

在Apache服务器中,你可以在 .htaccess 文件或者服务器的配置文件中加入以下其中一行:

apache
Header always set X-Frame-Options "DENY"

或者

apache
Header always set X-Frame-Options "SAMEORIGIN"

确保你已经启用了 mod_headers 模块,否则 Header 指令不会生效。

Nginx

对于Nginx服务器,你可以在服务器的配置文件中添加以下一行到 serverlocation 块:

nginx
add_header X-Frame-Options "DENY";

或者

nginx
add_header X-Frame-Options "SAMEORIGIN";

IIS (Internet Information Services)

对于IIS服务器,你可以通过编辑网站的 web.config 文件来设置响应头,如下所示:

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

请记住,如果你直接在 <iframe> 标签上设置 X-Frame-Options 是无效的。这个设置必须由提供页面内容的服务器通过响应头发送。

还要注意的是,X-Frame-Options 已经逐渐被更现代且更灵活的 Content-Security-Policy (CSP) 响应头中的 frame-ancestors 指令所取代。如果你需要更细粒度的控制,可以考虑使用 CSP。

2024年6月29日 12:07 回复

你的答案