开发者社区> 问答> 正文

宜搭报表嵌入内部系统跨域问题

在宜搭的报表设计器中设计了一个报表,生成一个https://XXX.aliwork.com/XXX 的链接作为iframe嵌入至内部系统中,授权登录后有跨域问题,显示refused to display in a frame beacuse it set 'X-Frame-Options’ to 'SAMEORIGIN',如何解决?

展开
收起
宇宙独弦 2024-07-31 15:47:30 88 0
来自:钉钉宜搭
1 条回答
写回答
取消 提交回答
  • 若问题得到了解决,辛苦点下采纳回答哦~

    您好,这个错误消息表示目标网页设置了 X-Frame-Options 为 SAMEORIGIN,这意味着该网页只能在相同域名的页面中被嵌入,不能跨域嵌入到其他域名的页面。这是一个安全措施,防止点击劫持攻击。

    要解决这个问题,你有以下几种方法:

    方法一:更改目标网页的设置
    修改 X-Frame-Options 响应头:如果你有权修改目标网页的服务器配置,可以将 X-Frame-Options 从 SAMEORIGIN 改为 ALLOW-FROM uri,或者移除这个头。但需要注意的是,开放这个设置可能会带来安全风险。
    使用 CSP(Content Security Policy)头:较新的做法是使用 Content-Security-Policy (CSP) 头来控制嵌入行为。

    方法二:通过代理解决跨域问题
    另一个办法是设置一个反向代理服务器,使请求看起来是同源的。具体而言,你可以在你的服务器上设置一个反向代理,将请求转发到目标服务器。

    使用 Nginx 反向代理:
    配置 Nginx 将请求转发到目标服务器

        server {
            listen 80;
            server_name your-domain.com;
    
            location /proxy-alias {
                proxy_pass https://XXX.aliwork.com/;
                proxy_set_header Host XXX.aliwork.com;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
    

    ```
    使用其他反向代理:你也可以使用其他代理服务器,例如 Apache 或者一些专用的代理软件。
    方法三:通过内容协商
    与目标服务器管理员协商,看看是否可以在双方的内部网络内调整 X-Frame-Options 或使用其他更灵活的嵌入策略。

    方法四:使用JSONP或者CORS(较高风险)
    在特殊情况下,可以尝试使用JSONP或CORS方式,确保跨域资源请求合法。

    请注意,在更改任何安全设置之前,务必评估潜在的安全风险,并采取相应的保护措施。这样能确保系统在开放部分功能时依旧能保持较高的安全性。

    2024-07-31 16:29:13
    赞同 12 展开评论 打赏
问答分类:
问答标签:
问答地址:
关联地址:
相关产品:
来源圈子
更多
收录在圈子:
+ 订阅
「宜搭」是云钉原生低代码平台(钉钉 PaaS - aPaaS),让企业应用搭建更简单! 帮助中小企业降本提效,加强组织的数字化自主权; 帮助大型企业释放个体创新力,助力组织创新涌现。
相关文档: 宜搭
问答排行榜
最热
最新

相关电子书

更多
宜搭 - 企业智能化应用搭建平台 立即下载
《云市场-宜搭解决方案》 立即下载
《宜搭开发手册》 立即下载