拒绝在框架中显示 xyz,因为它设置了 X-Frame-Options - 我可以设置允许的域吗?
Posted
技术标签:
【中文标题】拒绝在框架中显示 xyz,因为它设置了 X-Frame-Options - 我可以设置允许的域吗?【英文标题】:Refused to display xyz in a frame because it set X-Frame-Options - can I set an allowed domain? 【发布时间】:2021-09-13 10:04:12 【问题描述】:我正在整理一个即将进行渗透测试的网站,我们已被要求将 X-Frame-Options 标头添加到我们的服务器配置中。添加以下标头时,它会在我们使用 iframe 的 console.log 中给我一条错误消息
-- nginx 头文件--
add_header 'X-Frame-Options' "SAMEORIGIN";
-- 错误--
`拒绝在框架中显示“https://api.domain.com/”,因为它将“X-Frame-Options”设置为“sameorigin”。
显然,我了解此标头的安全原因,但我们的网站有一个我们根本无法更改的 iframe,并且它位于不同的域中,例如 oldapp.domain.com
而不是 api.domain.com
。
我会使用ALLOW-FROM uri
指令来允许来自这个其他域,但不再推荐使用此指令,是否有替代ALLOW-FROM uri
的方法可以让我简单地添加一个可以允许显示 iframe 内容的域?
【问题讨论】:
【参考方案1】:对于除一些较旧的浏览器(如 IE)之外的所有浏览器,您应该使用 Content-Security-Policy 和 frame-ancestors 指令。使用 CSP 框架祖先,您可以使用通配符 *.domain.com 或多个来源“oldapp.domain.com api.domain.com www.domain.com”。
X-Frame-Options ALLOW-FROM 仅接受一个 uri,您可能必须根据传入请求从允许的主机名列表中动态设置 uri。或者,如果您不需要完全支持 IE 和其他过时的浏览器,则可以将该值设置为 SAMEORIGIN,因为如果存在 CSP 框架祖先,则 X-Frame-Options 将被忽略。
【讨论】:
以上是关于拒绝在框架中显示 xyz,因为它设置了 X-Frame-Options - 我可以设置允许的域吗?的主要内容,如果未能解决你的问题,请参考以下文章
拒绝在框架中显示,因为它将“X-Frame-Options”设置为 DENY facebook fb.ui 共享方法
自定义搜索引擎拒绝在框架中的iframe中显示,因为它将“X-Frame-Options”设置为“sameorigin”
拒绝在框架中显示,因为它将“X-Frame-Options”设置为“SAMEORIGIN”
拒绝在框架中显示“https://www.google.co.in/”,因为它将“X-Frame-Options”设置为“sameorigin”