我需要将服务器级别上的X-Frame选项设置为:
- X-Frame-Options:SAMEORIGIN
- X-Frame-Options:ALLOW-FROM https://example.com/
了解X-Frame选项是互斥的。请参阅here。
但是,我的应用程序需要在 https://example.com 以及 SAMEORIGIN 中进行构建。
请告知是否有解决方法,同时保留我的申请要求允许在同一来源上设置框架,并在 1个外部网站上框起来
或者这不可能吗?
答案 0 :(得分:21)
除了仅支持标题的一个实例外,X-Frame-Options
不仅支持一个网站SAMEORIGIN
,还不支持{。}}。
您必须使用支持多个来源的Content-Security-Policy
和frame-ancestors
,例如:
Content-Security-Policy: frame-ancestors 'self' https://example.com
要记住一些注意事项:
frame-ancestors
obsoletes X-Frame-Options
- 意味着如果frame-ancestors
存在并且浏览器支持它,它将覆盖X-Frame-Options
的行为。frame-ancestors
指令according to MDN。这意味着他们将回归X-Frame-Options
。如果您需要在IE或Edge中支持多个来源,see this answer on SO with a workaround。答案 1 :(得分:0)
我有类似的要求,我在global.asax处理。我检查了请求的来源,并根据我将标头值更改为sameorigin或allow-from。希望有所帮助。