首页 > 解决方案 > 拒绝在框架中显示/祖先违反

问题描述

我们在网络跟踪中看到以下内容。

memberDocuments:1 拒绝在框架中显示“https://yyy.xxxx.org/”,因为它将“X-Frame-Options”设置为“sameorigin”。

拒绝框架“https://yyyy.xxxx.org/”,因为祖先违反了以下内容安全策略指令:“frame-ancestors 'self' https://*.xxxx.org”。

拒绝在框架中使用“https://yyyy.xxxx.org/”,因为它将“X-Frame-Options”设置为“sameorigin”

我们还有一个 SSO 框架/pingfederate 来保护我们的内容。并且运行时应用程序的响应标头配置设置为:

SAMEORIGIN --> --> name="exclude-patterns"> /idp/startSLO.ping; /sp/startSLO.ping; /idp/SLO.saml2;/sp/SLO.saml2;/idp/SLO.ping; /sp/SLO.ping; /idp/prp.wsf;/sp/prp.wsf;/idp/prp.ping; /sp/prp.ping </con:item> </con:map> --> <con:map name="Content-Security-Policy"> <con:item name="value">script-src 'unsafe -inline''unsafe-eval''self'; img-src '自我'; 样式-src '自我'; base-uri '自我'; 对象源“自我”;frame-ancestors 'self' https: //.xxxx.org;</con:item> <con:item name="include-patterns"> </con:item> </con:map>

如何解决它。

标签: htmlsingle-sign-onframepingfederate

解决方案


首先,在您的应用程序中嵌入外部登录页面的理由相对较少,尤其是在不同的域中。这样做没有安全“优点”,也有很多安全“缺点”。我建议你去评估你为什么要嵌入它,然后研究为什么你不应该(最大的原因将存在于 OWASP 前 10 名中)。

其次,如果您不管理身份提供者,那么您不应该尝试将页面嵌入到不同的域中。他们设置这些值是有原因的。在哪个世界里,尝试做你的伴侣管理他们的身份明确禁止的事情是很酷的?也许您应该问他们是否允许您嵌入页面?

最后,如果您的身份提供者同意允许您将登录页面嵌入到辅助域中,那么 PingFederate 中有几种方法可以实现这一点,根据使用的 PingFederate 版本使用不同的方法。它可以通过编辑 PingFederate 生成的标头来实现,它可以是 PingFederate 中的虚拟主机选项设置等。PingFederate 管理员如果需要帮助配置此设置,可以联系 Ping。


推荐阅读