because it set 'X-Frame-Options' to 'sameorigin'

报错 because it set 'X-Frame-Options' to 'sameorigin'.

bash 复制代码
Refused to display 'https://xxx.xxx.cn/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

解决方法:

修改页面,增加meta配置

html 复制代码
<head>
     <!-- CSP 设置 -->
     <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://yourdomain.com;">
     <!-- 其他头部信息 -->
   </head>

原理

在网页开发中,当你尝试在一个iframe标签内嵌入一个设置了X-Frame-Options响应头为sameorigin的页面时,浏览器会阻止该页面在不同源的iframe中加载。这是因为X-Frame-Options是用于防止点击劫持(clickjacking)攻击的安全策略,它告诉浏览器该页面只能在同源(即协议、域名和端口号都相同)的页面中以iframe的形式展示。

解决方式:

  1. 更改目标页面设置 :如果你对被嵌入的Java页面具有控制权,你可以考虑修改服务器端的响应头配置,移除或更改X-Frame-Options为允许跨域。例如,可以将其设置为ALLOW-FROM <指定源>,但请注意,这个选项在现代浏览器中已经不被推荐使用,并且不是所有浏览器都支持

    http 复制代码
    X-Frame-Options: ALLOW-FROM https://your-allowed-origin.com
  2. 使用其他安全策略 :若你依然需要保持一定的安全性,可以考虑采用更现代的Content Security Policy(CSP)中的frame-ancestors指令来替代X-Frame-Options,并指定允许嵌入的源。

    http 复制代码
    Content-Security-Policy: frame-ancestors 'self' https://your-allowed-origin.com;

修改HTTP头部或Meta标签

Content-Security-Policy (CSP) 是一种通过HTTP头部或Meta标签在网页中设置的安全策略,用于控制浏览器允许加载哪些资源。具体添加位置如下:

  1. HTTP Header: 在服务器端配置,将CSP规则添加到HTTP响应头中,例如在Apache、Nginx等Web服务器的配置文件里,或者在应用程序(如Node.js、PHP、Java Servlets等)中设置响应头。以下是一个在HTTP响应头中设置CSP的例子:

    http 复制代码
    Content-Security-Policy: default-src 'self'; script-src 'self' https://trustedscripts.com; style-src 'self' https://stylesheets.com; img-src 'self' data:; object-src 'none'; base-uri 'self';
  2. HTML Meta 标签: 当无法通过服务器端设置时,可以在HTML文档部分使用标签来定义CSP。注意,这种方式支持的功能可能不如HTTP头部方式全面,并且某些现代浏览器可能不再支持通过meta标签设置某些CSP指令。

    html 复制代码
    <head>
      <!-- CSP 设置 -->
      <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://trustedscripts.com;">
      <!-- 其他头部信息 -->
    </head>

选择哪种方式取决于你的应用架构和部署环境,通常推荐优先考虑通过HTTP头部来设置CSP以获得最佳兼容性和安全性效果。

欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。

Don't reinvent the wheel, library code is there to help.

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(^_^)

相关推荐
小王不爱笑1322 分钟前
Spring AOP(AOP+JDBC 模板 + 转账案例)
java·后端·spring
Python私教30 分钟前
Rust基本语法
后端
Python私教32 分钟前
Rust环境搭建
后端
jakeswang35 分钟前
ServletLess架构简介
java·后端·servletless
夕颜1111 小时前
如何让 AI 按照你的预期输出
后端
q***56381 小时前
Spring Boot--@PathVariable、@RequestParam、@RequestBody
java·spring boot·后端
q***57502 小时前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端
猪猪拆迁队3 小时前
前端图形引擎架构设计:双引擎架构设计
前端·后端·架构
GISer_Jing4 小时前
Node.js 开发实战:从入门到精通
javascript·后端·node.js
q***51894 小时前
Spring Boot 条件注解:@ConditionalOnProperty 完全解析
java·spring boot·后端