X-Frame-Options 标头不是可识别的指令

Posted

技术标签:

【中文标题】X-Frame-Options 标头不是可识别的指令【英文标题】:X-Frame-Options header is not a recognized directive 【发布时间】:2018-05-23 00:07:01 【问题描述】:

我现在使用 Nextcloud(在 nginx 上)有一段时间了,我想将它 iframe 用于另一个网站。但是标题不接受我的指令。

我将 /var/www/nextcloud/lib/private/legacy/response.php 中的标头选项更改为以下内容:

header('X-Frame-Options: ALLOW-FROM https://example.com');

但是,当我使用 iframe 制作示例网页时,会出现以下错误:

Invalid 'X-Frame-Options' header encountered when loading 'https://nextcloud.example.com/apps/files/': 'ALLOW-FROM https://example.com' is not a recognized directive. The header will be ignored.

有人知道为什么这不起作用吗?

【问题讨论】:

【参考方案1】:

allow-from 已“过时”。您可以改用 Content-Security-Policy 标头:

header('Content-Security-Policy: frame-ancestors https://example.com');

【讨论】:

【参考方案2】:

回到这篇文章。不幸的是,我发现了问题。 Chrome 不支持此选项,因此 Chrome 给了我 iframe 将我重定向到多次的错误。

但是该选项在 Firefox 上有效(更多信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options)。

【讨论】:

以上是关于X-Frame-Options 标头不是可识别的指令的主要内容,如果未能解决你的问题,请参考以下文章

php 为可识别的单个文章添加pingback url自动发现标头。

“X-Frame-Options”标头无效。 “ ”不是公认的指令

如何为 Spring Boot/MVC 资源设置可识别的内容/MIME 类型?

TimeValue 不是可识别的内置函数名称

grep:不是一个可识别的标志:R

STRING_AGG 不是可识别的内置函数名称