猿问

X-Frame-Options没有显式设置为sameorigin,但是Nginx阻止了将渲染页面

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

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

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


一只名叫tom的猫
浏览 1241回答 2
2回答

胡子哥哥

问题不关乎X-Frame-Options,还关乎Content-Security-Policy。Codecanyon设置了一个CSP标头,以防止其他站点可以在其站点中进行构架。即使您允许XFO标头中的所有网站,它们也可以使用CSP标头阻止您的网站在其网站中显示。但是,这是一个市场,他们必须为开发人员提供一种在预览页面中包含iframe的方式。似乎他们没有实现开发人员在预览页面中提供frame-src的方法。因此,Codecanyon的CSP标头处于“仅报告”模式。尽管您在Chrome开发者控制台中看到了很多错误,但一切运行正常。顺便说一句,您实现了语法错误CSP标头:开始时出现了意外的标点符号。

倚天杖

如果有帮助,我后来发现将框架祖先设置为该特定域可以使该域在iframe中显示页面。您可以在nginx配置文件中执行此操作。
随时随地看视频慕课网APP
我要回答