用js调用外部js报错,不能正常访问,X-Frame-Options

有关X-Frame-Options的介绍:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options

报错背景:写了一个html,用js打开目标网页
报错信息chrome浏览器,refused to display ‘xxxthis is a url’ in a frame because it set ‘X-Frame-Options’ to ‘sameorigin’;
ie11浏览器,此内容不能显示在一个框架中,为了帮助保护在此网站中输入的信息的安全,此内容的发布者不允许在框架中显示该信息;
firefox浏览器,load denied by X-Frame-Options: xxxurl does not permit cross-origin framing.
报错原因:浏览器安全设置里设置了X-Frame-Options响应头,而sameorigin是同源设置,使得网页不能跨域访问
修改方案
查到的几种方案(我这里因为有登陆界面,所以需要先登陆目标网站,然后再刷新原html网页)
Google Chrome浏览器跨域设置
1.google chrome快捷方式 – 属性 --目标
在原内容后添加 --args --disable-web-security --user-data-dir --allow-file-access-from-files,然后从快捷方式打开谷歌浏览器
2.在iis的http响应标头,添加响应头
名称:Access-Control-Allow-Origin
值:*
IE11浏览器跨域设置
打开【Internet选项】–> 【安全】 -->【Internet】–>【自定义级别】–>【其他】
设置【跨域浏览窗口和框架】和【通过域访问数据源】为启用
如果站点为【本地intranet】,则选择对应选项,点击【自定义安全级别】,其他设置方法同上

### 配置 X-Frame-Options 头 为了在 Spring Security 6.4.1 中配置 `X-Frame-Options` HTTP 安全响应头,可以利用内置的安全配置方法。此头部用于指示浏览器是否应该允许在一个 `<frame>` 或 `<iframe>` 中加载页面,以此预防点击劫持攻击。 通过自定义安全配置类并重载其配置方法,可以在应用程序中设置该头部。具体来说,在扩展了 `WebSecurityConfigurerAdapter` 的配置类中的 `configure(HttpSecurity http)` 方法内实现这一功能[^1]: ```java @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.headers() .frameOptions().policy(FrameOptionsPolicy.DENY); // Other configurations... } } ``` 上述代码片段展示了如何拒绝任何框架加载当前网页的方式之一——即调用 `.frameOptions().policy(FrameOptionsPolicy.DENY)` 来阻止所有尝试嵌入页面的行为。除了 `DENY` 政策外,还可以选择其他两种政策:`SAMEORIGIN` 和 `ALLOW_FROM uri`(后者仅适用于某些旧版本)。对于大多数情况而言,推荐使用 `SAMEORIGIN` 策略以确保只有来自同一源的页面才能将本页作为 iframe 加载。 如果正在使用的是继承自 `WebSecurityConfigurerAdapter` 的方式,则可以直接在 `@Bean` 注解的方法里创建 `SecurityFilterChain` 实现相同的效果: ```java @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.headers() .frameOptions().sameOrigin(); // 使用 SAMEORIGIN 策略 // 其他配置... return http.build(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值