【问题标题】:X-Frame-Options not explicitly set to sameorigin, but Nginx blocking rendering page into iframeX-Frame-Options 未显式设置为sameorigin,但 Nginx 阻止将页面渲染到 iframe
【发布时间】:2019-05-03 05:57:35
【问题描述】:

我没有在 nginx 中的任何地方明确设置 x-frame-options 为 sameorigin,但 nginx 阻止了在 iframe 内呈现的 html 页面。尝试在 X-Frame-Options 中指定域,但没有运气。如果有帮助,请在控制台中给出几个错误。我通读了它们并尝试了修复但无法正常工作。

https://preview.codecanyon.net/item/product-name/product-id

它在 iframe 中预览我的 HTML 页面。

【问题讨论】:

    标签: php nginx x-frame-options


    【解决方案1】:

    问题不在于 X-Frame-Options,而在于 Content-Security-Policy。 Codecanyon 设置了一个 CSP 标头,以防止其他站点可以在其站点中构建框架。即使您在 XFO 标头中允许所有网站,他们也可以使用 CSP 标头阻止您的网站在其网站中显示。

    但他们是一个市场,他们必须为开发者开辟一种途径,在他们的预览页面中包含 iframe。似乎他们没有实现开发人员在预览页面中提供 frame-src 的方式。因此 Codecanyon 的 CSP 标头处于仅报告模式。尽管您从 Chrome 开发者控制台看到了很多错误,但一切都运行良好。


    顺便说一句,您实现了一个语法错误 CSP 标头:开始时出现意外标点符号。

    【讨论】:

    • 我注意到了。知道我在哪里造成的吗?在 nginx 配置文件中? Nginx 没有抱怨。很难找到。
    • Nginx 不会抱怨 header 的值。
    • 知道了。我有一个 : 在 CSP 标头名称之后。
    【解决方案2】:

    如果有帮助,我后来发现将框架祖先设置为该特定域允许该域在 iframe 中显示页面。您可以在 nginx 配置文件中执行此操作。

    【讨论】:

      猜你喜欢
      • 2012-08-24
      • 2015-11-25
      • 2016-03-21
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      相关资源
      最近更新 更多