响应头缺失、禁用Options方法、解决跨域
X-Frame-OptionsX-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在其他页面种引用。站点可以通过确保网站没有被嵌入到别人的站点里面从而避免 clickjacking(点击劫持)语法:X-Frame-Options: deny X-Frame-Options: sameorigin X-Frame-Options: allow-from https://example.com/ nginx种引号是必须要写的哦说明:deny 表示该页面不允许在 frame 中展示即便是在相同域名的页面中嵌套也不允许。 sameorigin 表示该页面可以在相同域名页面的 frame 中展示。 allow-from uri 表示该页面可以在指定来源的 frame 中展示。 deny、sameorigin、allow-from仅仅允许使用一种配置举例:nginx:格式add_header 响应头名称 响应头对应的值 [always];name是添加的头名称value是对应的值always可选在不添加always的情况下add_header只对响应码为200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 (1.1.16, 1.0.13), 308 (1.13.0)这些生效括号内是nginx版本。也就是说当服务端返回响应异常响应码不是上述之一的话即使nginx有配跨域头信息浏览器仍然会显示跨域错误。原因就是因为nginx对异常响应码添加add_header无效。实际工作中往往前端需要捕获服务端异常响应这时在nginx跨域add_header上加上always使nginx对任何响应码生效。add_header X-Frame-Options SAMEORIGIN;Apache格式:Header [condition] set|append|add|unset|echo 响应头名称 响应头对应的值可选条件可以是onsuccess或者always。它确定应该操作哪个内部头表。onsuccess代表 2xx状态码而always代表所有状态码包括2xxset响应标题被设置用这个名字替换任何以前的标题。该值可以是格式字符串。Header always append X-Frame-Options SAMEORIGIN Header always set X-Frame-Options deny $ curl -I http://localhost X-Frame-Options: denyappend响应头的值被追加到任何现有的相同名称的头。当一个新的值被合并到一个已经存在的响应头上时用逗号分开。这是添加多个值的HTTP标准方式。Header always append X-Frame-Options SAMEORIGIN Header always append X-Frame-Options deny $ curl -I http://localhost X-Frame-Options: SAMEORIGIN,denyadd响应标题被添加到现有的标题集即使这个标题已经存在。这可能会导致两个或更多标题具有相同的名称。这可能会导致不可预见的后果应该使用“附加”来代替Header always append X-Frame-Options SAMEORIGIN Header always add X-Frame-Options deny $ curl -I http://localhost X-Frame-Options: SAMEORIGIN X-Frame-Options: denyunset如果该名称存在则会删除该名称的响应标题。如果有多个相同名称的标题则全部将被删除Header always append X-Frame-Options SAMEORIGIN Header always unset X-Frame-Options $ curl -I http://localhostecho带有这个名字的请求头在回应头中回显。标题可能是一个正则表达式。对于setappendadd和unset大小写是忽视的但echo的 响应头名称是大小写敏感的并且可以是正则表达式。Header always append X-Frame-Options SAMEORIGINX-Content-Type-OptionsX-Content-Type-Options 响应首部相当于一个提示标志被服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定而不能对其进行修改。这就禁用了客户端的 MIME 类型嗅探行为换句话说也就是意味着网站管理员确定自己的设置没有问题。这个消息首部最初是由微软在 IE 8 浏览器中引入的提供给网站管理员用作禁用内容嗅探的手段内容嗅探技术可能会把不可执行的 MIME 类型转变为可执行的 MIME 类型。在此之后其他浏览器也相继引入了这个首部尽管它们的 MIME 嗅探算法没有那么有侵略性注意: nosniff 只应用于 “script” 和 “style” 两种类型。事实证明将其应用于图片类型的文件会导致与现有的站点冲突语法X-Content-Type-Options: nosniff说明:nosniff 下面两种情况的请求将被阻止 请求类型是style 但是 MIME 类型不是 text/css 请求类型是script 但是 MIME 类型不是 JavaScript举例Nginxadd_header X-Content-Type-Options nosniff;ApacheHeader always append X-Content-Type-Options nosniffX-XSS-ProtectionX-XSS-Protection 用于启用浏览器的 XSS 过滤功能以防止 XSS 跨站脚本攻击。当检测到跨站脚本攻击 (XSS)时浏览器将停止加载页面.语法:X-XSS-Protection: 0 X-XSS-Protection: 1 X-XSS-Protection: 1; modeblock X-XSS-Protection: 1; reportreporting-uri说明:0 禁止XSS过滤 1 启用XSS过滤通常浏览器是默认的。 如果检测到跨站脚本攻击浏览器将清除页面删除不安全的部分。 1;modeblock 启用XSS过滤。 如果检测到攻击浏览器将不会清除页面而是阻止页面加载。 1; reportreporting-URI (Chromium only) 启用XSS过滤。 如果检测到跨站脚本攻击浏览器将清除页面并使用CSP report-uri指令的功能发送违规报告。举例:Nginx:add_header X-XSS-Protection 1; modeblock;ApacheHeader always append X-XSS-Protection 1; modeblockContent-Security-PolicyContent-Security-Policy 用于控制当外部资源不可信赖时不被读取。用于防止 XSS 跨站脚本攻击或数据注入攻击但是如果设定不当则网站中的部分脚本代码有可能失效)。允许站点管理者控制用户代理能够为指定的页面加载哪些资源 之前的字段名为 X-Content-Security-Policy语法:Content-Security-Policy: policy-directive; policy-directive说明:通过获取指令来控制某些可能被加载的确切的资源类型的位置。 child-src child-src为 web workers 和其他内嵌浏览器内容例如用和加载到页面的内容定义合法的源地址。 如果开发者希望管控内嵌浏览器内容和 web worker 应分别使用frame-src和worker-src 指令来相对的取代 child-src。 connect-src connect-src限制能通过脚本接口加载的URL。 default-src default-src为其他取指令提供备用服务fetch directives。 font-src font-src设置允许通过font-face加载的字体源地址。 frame-src frame-src 设置允许通过类似和标签加载的内嵌内容的源地址。 img-src img-src: 限制图片和图标的源地址 manifest-src manifest-src 限制应用声明文件的源地址。 media-src media-src限制通过、或标签加载的媒体文件的源地址。 object-src object-src限制、、标签的源地址。 被object-src控制的元素可能碰巧被当作遗留HTML元素导致不支持新标准中的功能例如中的安全属性sandbox和allow。因此建议限制该指令的使用比如如果可行将object-src显式设置为none。 prefetch-src 指定预加载或预渲染的允许源地址。 script-src 限制JavaScript的源地址。 style-src 限制层叠样式表文件源。 webrtc-src 指定WebRTC连接的合法源地址。 worker-src 限制Worker、SharedWorker或者ServiceWorker脚本源。举例:Nginxadd_header Content-Security-Policy default-src * unsafe-inline unsafe-eval; style-src * unsafe-inline unsafe-eval ;script-src * unsafe-inline unsafe-eval;img-src data: https:;ApacheHeader always append Content-Security-Policy default-src * unsafe-inline unsafe-eval; style-src * unsafe-inline unsafe-eval ;script-src * unsafe-inline unsafe-eval;img-src data: https:;‘unsafe-inline’和‘unsafe-eval’表达式重新启用内联JavaScript和动态代码执行这些默认情况下都是被CSP禁用的。理想情况下通常不会希望在策略里保留这些表达式但没有它们大多数现有的应用都会被阻断。 default-src ‘self’允许读取来自于同源域名主机端口号的所有内容 *.example.com允许读取来自于指定域名及其所有子域名的所有内容X-Permitted-Cross-Domain-PoliciesX-Permitted-Cross-Domain-Policies 现代浏览器提供了许多可选的安全相关功能与特性这些功能与特性通常可以通过 HTTP 响应头来控制使用这些功能可以避免受到浏览器端的用户受到类似CSRF、XSS、Click Hijacking 等前端黑客攻击的影响。Web 服务器对于 HTTP 请 求的响应头中缺少 X-Permitted-Cross-Domain-Policies这将导致浏览器提供的安 全特性失效。 当一些在线的 Web Flash 需要加载其他域的内容时很多 Web 会通 过设置一个 crossdomain.xml 文件的方式来控制其跨域方式。很有可能有些开发者 并没有修改 crossdomain.xml 文件的权限但是又有和跨域的 Flash 共享数据的需求这时候可以通过设置 X-Permitted-Cross-Domain-Policies 头的方式来替代 crossdomain.xml 文件语法:X-Permitted-Cross-Domain-Policies: master-only说明:none 不允许使用loadPolicyFile方法加载任何策略文件包括此主策略文件。 master-only: 只允许使用主策略文件[默认值]。 by-content-type: 只允许使用loadPolicyFile方法加载HTTP/HTTPS协议下Content-Type 为text/x-cross-domain-policy的文件作为跨域策略文件。 by-ftp-filename: 只允许使用loadPolicyFile方法加载FTP协议下文件名为 crossdomain.xml的文件作为跨域策略文件。 all: 可使用loadPolicyFile方法加载目标域上的任何文件作为跨域策略文件甚至是一 个JPG也可被加载为策略文件。举例:Nginx:add_header X-Permitted-Cross-Domain-Policies master-only;ApacheHeader always append X-Permitted-Cross-Domain-Policies master-onlyStrict-Transport-SecurityHTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式语法:Strict-Transport-Security: max-ageexpire-time Strict-Transport-Security: max-ageexpire-time; includeSubDomains Strict-Transport-Security: max-ageexpire-time; preload说明:max-ageexpire-time 单位秒设置在浏览器收到这个请求后的expire-time秒的时间内凡是访问这个域名下的请求都使用HTTPS请求。 当HSTS头设置的过期时间到了后面通过HTTP的访问恢复到正常模式不会再自动跳转到HTTPS. includeSubDomains 可选 如果这个可选的参数被指定那么说明此规则也适用于该网站的所有子域名。 preload 可选查看预加载HSTS获得详情。不是标准的一部分举例:Nginxadd_header Strict-Transport-Security max-age31536000; includeSubdomains;;ApacheHeader always append Strict-Transport-Security max-age31536000; includeSubdomains;Referrer-PolicyReferrer-Policy 首部用来监管哪些访问来源信息——会在 Referer 中发送——应该被包含在生成的请求当中语法:Referrer-Policy: no-referrer Referrer-Policy: origin Referrer-Policy: origin-when-cross-origin Referrer-Policy: same-origin Referrer-Policy: strict-origin Referrer-Policy: strict-origin-when-cross-origin Referrer-Policy: unsafe-url说明:no-referrer 整个 Referer 首部会被移除。访问来源信息不随着请求一起发送。 origin 在任何情况下仅发送文件的源作为引用地址。例如 https://example.com/page.html 会将 https://example.com/ 作为引用地址。 origin-when-cross-origin 对于同源的请求会发送完整的URL作为引用地址但是对于非同源请求仅发送文件的源。 same-origin 对于同源的请求会发送引用地址但是对于非同源请求则不发送引用地址信息。 strict-origin 在同等安全级别的情况下(HTTPS-HTTPS)发送文件的源作为引用地址但是在降级的情况下(HTTPS-HTTP)不会发送 。 strict-origin-when-cross-origin默认值 对于同源的请求会发送完整的URL作为引用地址对于非同源,在同等安全级别的情况下(HTTPS-HTTPS)发送文件的源作为引用地址在降级的情况下(HTTPS-HTTP)不发送此首部。 unsafe-url 无论是同源请求还是非同源请求都发送完整的 URL移除参数信息之后作为引用地址。 这项设置会将受 TLS 安全协议保护的资源的源和路径信息泄露给非安全的源服务器。进行此项设置的时候要慎重考虑。举例:Nginxadd_header Referrer-Policy origin;ApacheHeader always append Referrer-Policy originX-Download-OptionsX-Download-Options用于防止直接打开用户下载语法:X-Download-Options:noopen说明:noopen用于指定IE 8以上版本的用户不打开文件而直接保存文件在下载对话框中不显示打开选项举例Nginxadd_header X-Download-Options noopen;ApacheHeader always append X-Download-Options noopen启用Options方法Nginxserver { ..... if ($request_method ~* OPTIONS) { return 403; } ..... } 或者 server { ..... if ($request_method !~* (GET|POST)) { return 403; } ..... } 检测方法(注意:curl的请求方法是GET但是加上-I 参数时请求方法变成HEAD) curl -v -X OPTIONS http://localhost:8080ApacheRewriteEngine On RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS) RewriteRule .* - [F] 或者 RewriteEngine On RewriteCond %{REQUEST_METHOD} !(GET|POST) RewriteRule .* - [F]检测方法(注意:curl默认的请求方法是GET curl -I的请求方式是HEAD)curl -v -X OPTIONS http://localhost:8080允许跨域Nginxadd_header Access-Control-Allow-Origin *; #如果指定域名必须加上前面的协议 比如add_header Access-Control-Allow-Origin https://www.baidu.com; add_header Access-Control-Allow-Headers Origin, X-Requested-With, Content-Type, accept; add_header Access-Control-Allow-Methods GET, POST, OPTIONS;ApacheHeader set Access-Control-Allow-Origin * #如果指定域名必须加上前面的协议 比如add_header Access-Control-Allow-Origin https://www.baidu.com Header set Access-Control-Allow-Headers Content-Type Header set Access-Control-Allow-Methods GET, POST, OPTIONS

相关新闻

基于FPGA的DDS混频及原理

基于FPGA的DDS混频及原理

DDS混频原理 混频的目的就是为了频谱搬移,我们就需要使用混频操作,将频谱搬移到高频或者低频,在数字信号处理中, 频谱的搬移就是将一个本震信号和一个输入信号,进行混频,这样就可以得到一个复合的信号。 这里通过公式开看这个复合信号 这里的阿尔法 与贝塔就是指的两个…

2026/7/31 17:45:02 阅读更多 →
RAG 召回90%却答错?Taotoken实测发现重排阶段3个致命疏忽

RAG 召回90%却答错?Taotoken实测发现重排阶段3个致命疏忽

企业知识库系统重排优化实战:从31%到79%准确率的跃迁之路 召回≠可用:深入解析指标欺骗性 在构建企业知识库系统时,我们往往陷入一个典型误区:过度追求召回率(Recall)指标。经过连续72小时的严苛测试&…

2026/7/31 17:45:02 阅读更多 →
长会话崩溃实录:Taotoken 实测 4 个模型在 Context 超载后集体编造答案

长会话崩溃实录:Taotoken 实测 4 个模型在 Context 超载后集体编造答案

大模型上下文过载危机:Taotoken平台实测与工业级解决方案 上周用 GPT-5.4 审查合同时遭遇典型翻车案例:前 20 页分析精准,到第 38 页突然声称『本协议约定甲方需支付乙方 200% 违约金』——这条款根本不存在。Taotoken 的调用日志显示&#…

2026/7/31 17:45:01 阅读更多 →

最新新闻

多角色对话系统部署实战:从环境配置到性能优化

多角色对话系统部署实战:从环境配置到性能优化

这次我们来看一个名为《舌战群儒》的项目。从名称来看,这很可能是一个基于语言模型或对话系统的技术实现,可能涉及多轮对话、辩论场景模拟或多人对话生成能力。这类项目通常关注语言模型的逻辑推理、上下文理解和多角色交互能力。对于这类语言对话项目&a…

2026/7/31 18:14:13 阅读更多 →
QtScrcpy跨平台Android设备控制架构深度解析

QtScrcpy跨平台Android设备控制架构深度解析

QtScrcpy跨平台Android设备控制架构深度解析 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy QtScrcpy是一款基于Qt框架构建的跨平台Android设备实时显示与控制软件,采用…

2026/7/31 18:14:13 阅读更多 →
Wayback Machine浏览器扩展:您的网页时光机与数字保险箱

Wayback Machine浏览器扩展:您的网页时光机与数字保险箱

Wayback Machine浏览器扩展:您的网页时光机与数字保险箱 【免费下载链接】wayback-machine-webextension A web browser extension for Chrome, Firefox, Edge, and Safari 14. 项目地址: https://gitcode.com/gh_mirrors/wa/wayback-machine-webextension 在…

2026/7/31 18:14:13 阅读更多 →
5个步骤快速上手LazyVim:打造你的个性化Neovim IDE配置

5个步骤快速上手LazyVim:打造你的个性化Neovim IDE配置

5个步骤快速上手LazyVim:打造你的个性化Neovim IDE配置 【免费下载链接】LazyVim Neovim config for the lazy 项目地址: https://gitcode.com/GitHub_Trending/la/LazyVim 你是否厌倦了在Neovim配置上花费大量时间,却又不想使用过于僵化的预设发…

2026/7/31 18:14:13 阅读更多 →
WinSetView:彻底解决Windows文件夹视图混乱的终极方案

WinSetView:彻底解决Windows文件夹视图混乱的终极方案

WinSetView:彻底解决Windows文件夹视图混乱的终极方案 【免费下载链接】WinSetView Globally Set Explorer Folder Views 项目地址: https://gitcode.com/gh_mirrors/wi/WinSetView 你是否曾经在Windows资源管理器中迷失过?每天打开十几个文件夹&…

2026/7/31 18:14:12 阅读更多 →
7 月 26 日 —7 月 30 日 精选科技新闻

7 月 26 日 —7 月 30 日 精选科技新闻

7 月 27 日1. 月之暗面 Kimi K3 正式开源 月之暗面团队 7 月 27 日晚间公开全球最大开源 MoE 模型 Kimi K3 权重与全套技术文档,总参数 2.8 万亿,原生支持 100 万 token 超长上下文、多模态视觉理解,同步开放三项自研训练加速技术&#xff0c…

2026/7/31 18:13:12 阅读更多 →

日新闻

物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:34 阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:34 阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:34 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻