首页 > 其他分享 >X-Frame-Options处理

X-Frame-Options处理

时间:2023-06-14 13:12:31浏览次数:43  
标签:视频 限制 处理 Frame nginx 工单 Options

'X-Frame-Options' to 'SameOrigin'

最近系统遇到一个视频播放同源的问题。通过Nginx清除Response的X-Frame-Options的限制解决。

过程

问题

工单系统的播放视频,是一个独立Iframe页面,单独打开工单系统,查看工单记录的视频,没有任何问题。但是工单系统的界面是嵌入到主系统中,打开工单记录页面没有问题,接着打开视频界面,就出现 'X-Frame-Options' to 'SameOrigin'的错误。
img

分析

错误提示很明确:X-Frame-Options,然后查看视频流请求的确有限制,所以只要把限制取消,是不是就可以了?

处理

由于工单和主程序,都是nginx代理,如下图所示。
img

所以把nginx 8099的工单代理处理X-Frame-Options就可以了。但是找了一圈,发现X-Frame-Options只有三种值,没有允许通用嵌入的选项,所以nginx该怎么配置呢?是不是不配置就默认通用呢?

尝试配置了一下'X-Frame-Options' to 'SameOrigin', 结果是工单页面无法嵌入主程序,推断只要不显示设置X-Frame-Options,Response不携带该配置,就允许嵌入任意非同源站点。

既然不设置就是通用不限制,那为什么工单的视频页面会有同源?

这里排查了很久,忽略了一个问题,X-Frame-Options限制是在哪里产生的?当时没有注意到,很明显是工单后端服务产生的。在nginx设置的X-Frame-Options对前端站点生效,但是工单服务代理不生效,解决的问题要么工单后端服务取消限制,要么nginx清除这个限制。如下图所示:

img

nginx反向代理,清除X-Frame-Options配置

    # 正向设置
    # add_header X-Frame-Options SAMEORIGIN always;
    # 反向清除
    # proxy_hide_header X-Frame-Options;

img

标签:视频,限制,处理,Frame,nginx,工单,Options
From: https://www.cnblogs.com/watervon/p/17430846.html

相关文章

  • 新浪微博:大规模离线视频处理系统的架构设计
    微博视频平台在4亿月活用户吃瓜嗨聊的高并发、大流量背景下,既要保证用户微博生产和消费体验,又要支持业务快速迭代,确保正确性、稳定性和高可用性。本次演将以微博视频大规模视频离线处理系统的架构设计为主题为大家带来大规模分布式系统的架构设计,性能优化和高可用保障......
  • 窗体对象JFrame
    importjavax.swing.*;publicclassJFrameTest{   publicstaticvoidmain(String[]args){       //创建窗体对象       JFrameframe=newJFrame();       //设置窗体大小       frame.setSize(500,500);       //设置窗......
  • FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡
    图片逐渐成为互联网主要的内容构成,相应的图片处理需求也在高速成长,移动应用与用户生产内容(UGC)正在驱动数据中心图像处理的业务负载快速增加。本文深维科技联合创始人兼CEO樊平详细剖析了图片加速的必要性、当前实际的图片解决方案与部署方式以及如何通过FPGA+CPU异构计算的方案维护......
  • (转)别人记录的第三方安全扫描报告问题处理汇总,覆盖了大部分遇到的
    http://wpcms.zdsoft.net/newsInfo.aspx?pkId=173http://www.taodudu.cc/news/show-5963408.html?action=onClick检测到目标服务器存在应用程序错误修改网站web.config配置,已关闭详细错误信息显示。将mode值修改为On<system.web>   <customErrors mode="On">   </c......
  • 使用人类棋手棋盘数据训练围棋机器人,实现数据预处理
    知己知彼,百战不殆。我们要打造一个能胜过人类的机器人,就必须要让机器人掌握人类的围棋思维模式,因此我们就需要使用人类棋手留下的棋盘数据训练机器人,让它从数据中掌握人类围棋思维存在的模式和套路。幸运的是,我们能够通过围棋服务器拿到很多由人落子后产生的棋盘数据。很多围棋服务......
  • java开发系统内核:caps 按键处理
    更详细的讲解和代码调试演示过程,请参看视频LinuxkernelHacker,从零构建自己的内核上一节,我们成功实现了对shift按键的处理,这一节,我们看看如何处理caps按键,当该键按下时,输入系统的字符在大小写间切换。由于我们系统启动后,默认输入是大写字符,完成本节后,我们把系统的默认字符改成......
  • 在上一操作期间遇到问题:Debug|AnyCPU 配置中 TargetFrameworkMoniker和NugetTargetMon
    在上一操作期间遇到问题:Debug|AnyCPU配置中TargetFrameworkMoniker和NugetTargetMoniker属性的值均为空场景使用VS打开之前的项目,报错:在上一操作期间遇到问题:Debug|AnyCPU配置中TargetFrameworkMoniker和NugetTargetMoniker属性的值均为空新建项目后,选择该项目未项......
  • Canvas_绘制线段、圆形、文本、图像、视频、处理图像数据
    Canvas_绘制线段、圆形、文本、图像、视频、处理图像数据绘制线段varcanvas1=document.querySelector("#canvas1");varctx=canvas1.getContext("2d");//设置开始路径ctx.beginPath()//设置绘制的起始点ctx.moveTo(50,50);//设置经过某个位置ctx.lineTo(50,30......
  • Windows系统提示“不是内部或外部命令,也不是可运行的程序或批处理文件”怎么办?
    Windows系统电脑/服务器在运行CMD命令提示符时提示“不是内部或外部命令,也不是可运行的程序或批处理文件”,遇到这种情况怎么办呢?今天我和你们分享解决办法。方法一:重新配置系统环境变量(演示的是Windows10系统)1、开始——控制面板——系统2、高级系统设置——高级——环境变量(快捷......
  • boost库之事件处理
    一、概述Boost.Signals所实现的模式被命名为"信号至插槽",它基于以下概念:当对应的信号被发出时,相关联的插槽即被执行,原则上,可以把"信号"和"插槽"分别替换为'事件'和'事件处理器',它提供了一个名为boost::signal的类,定义于boost/signal.hpp,实际上,这个头文件是唯一一个需要知道的,因......