X-Frame-Options配置

本文介绍了如何在Apache、Nginx及IIS服务器中设置X-Frame-Options响应头,以控制页面是否允许在iframe中展示,并提供了具体的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为最近项目需要接入数据统计,其中一项功能需要开启iframe形式来加载页面,所以就开始研究一下iframe如何配置~~~

X-Frame-Options:

他的值有三个:

(1)DENY --- 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

(2)SAMEORIGIN --- 表示该页面可以在相同域名页面的 frame 中展示。

(3)ALLOW-FROM https://example.com/ --- 表示该页面可以在指定来源的 frame 中展示。


配置Apache:

(如果是在本地的话,就是在httpd.conf里面配置;如果是linux(ubuntu的话)就是在apache2.conf里面)

找个空的位置加入这行代码,具体看你是选择哪种

<span style="font-size:14px;">Header always append X-Frame-Options SAMEORIGIN</span>

有可能会遇到一种情况,就是我在服务端配置完apache之后,尝试 Restart Apache 但是报了一个错误:

Invalid command ‘Header’, perhaps misspelled or defined by a module not included in the server configuration

header的方法模块没有安装,我们需要先自行安装一下:

先输入 a2enmod heade ,然后需要重启一下Apache,输入service apache2 restart


配置Nginx:

配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中:

<span style="font-size:14px;">add_header X-Frame-Options SAMEORIGIN;</span>


配置IIS:

配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中:

<system.webServer>
  ...

  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>

  ...
</system.webServer>


大概配置就是这样了,之前在寻找配置iframe加载的时候,看到有些文章说iframe加载容易被劫持,当然也有破解的方法,不过没有详细地去看,有兴趣的朋友可以去了解下!大笑

X-Frame-Options 是一种 HTTP 安全标头,用于防止网页被嵌入到其他网站的 iFram 中。这可以防止点击劫持攻击、框架套取和其他安全风险。 在 Spring Boot 应用中配置 `X-Frame-Options` 标头的方法如下: ### 1. 添加依赖 如果你还没有添加 `spring-boot-starter-web` 相关依赖,可以在 `pom.xml` 文件中添加它: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` ### 2. 使用配置类定制 `X-Frame-Options` Spring 提供了一个简单的机制来设置 HTTP 头信息。你可以创建一个新的配置类来覆盖默认的 `X-Frame-Options` 设置。 假设有一个名为 `WebConfigCustomizer.java` 的配置类: ```java import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebConfigCustomizer implements WebMvcConfigurer { @Override public void configureMessageSecurity(MessageSecurityContextFactoryBean factory) { // 这里可以添加更多消息安全相关的配置 } @Override public void addInterceptors(InterceptorRegistry registry) { // 这里可以添加拦截器配置 } @Override public void addCorsMappings(CorsRegistry registry) { // CORS 配置 } /** * 配置 X-Frame-Options 标头。 */ @Override public void addHeaders(HttpHeaderRepository headers) { String xFrameOptions = "SAMEORIGIN"; headers.put("X-Frame-Options", xFrameOptions); } } ``` 在这个例子中,我们简单地设置了 `X-Frame-Options` 为 "SAMEORIGIN"。这个值意味着只有来自同源的页面才能加载该页面作为 iFrame 内容。 ### 3. 启动应用并验证 启动 Spring Boot 应用程序,然后通过浏览器访问应用 URL,并检查响应头中的 `X-Frame-Options` 标头是否已经被设置为你所期望的值。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值