X-Frame-Options“SAMEORIGIN”标头不起作用

时间:2021-05-28 20:08:01

标签: x-frame-options

我一直在尝试在我们的 .htaccess 文件规则中为我们网站的页面实施 iframe 嵌入阻止:

Header append X-Frame-Options "SAMEORIGIN"

我也尝试过这样的变体,结果没有变化:

Header always set X-Frame-Options "SAMEORIGIN"
Header append X-Frame-Options "DENY"

我在这里能找到的只是例如未回答的 Why chrome ignores X-frame-option: sameorigin?,我认为它不相关,因为 SAMEORIGIN 在我测试的所有浏览器上都被忽略了。

我已经在站点的本地版本和实时版本中对此进行了测试,结果始终相同(在 Chromium 开发人员工具网络标题功能中检查):

当 iframe 请求页面时,嵌入 HTML 页面的主要 html 响应标头没有 x-frame-options: SAMEORIGIN 响应,但所有 css、js 等页面组件都有。但是,据称不允许嵌入到非原始站点 iframe 页面中的任何组件实际上都没有被阻止,也就是说,页面完全像往常一样呈现,所有 js、css、图像等都在 iframe 中呈现良好。

HTML 页面响应标头正常:内容类型、日期、服务器、变化。

据我所知,这些 Header 指令只是被浏览器忽略了。在 Chromium、Vivaldi、Firefox、Konqueror 上测试,结果总是一样,页面显示正常,没有问题,实际上没有发生阻塞。当我在 Debian GNU/Linux 中运行这些测试时,这应该是零差异,因为这些是浏览器引擎问题,而不是操作系统问题。

我禁用了 Ublock Origin 广告拦截器只是为了确保它不会造成一些问题,结果相同。标题只是被忽略了。

原因可能是最初的 html 页面没有得到嵌入块头响应,这可能会使其他块不起作用,但我对这个头逻辑的理解是它总是打开的,除非被各种文件 Apache 规则限制为特定的文件/类型。

对这两个问题的任何见解将不胜感激:

  1. 为什么原始服务器不为所请求的实际 html 页面发送 X-Frame-Options 响应头,而是为除 html 之外的所有页面组件发送它们?

  2. 为什么所有浏览器都忽略这些标头?

0 个答案:

没有答案
相关问题