html - 拒绝在框架中显示/祖先违反
问题描述
我们在网络跟踪中看到以下内容。
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>
如何解决它。
解决方案
首先,在您的应用程序中嵌入外部登录页面的理由相对较少,尤其是在不同的域中。这样做没有安全“优点”,也有很多安全“缺点”。我建议你去评估你为什么要嵌入它,然后研究为什么你不应该(最大的原因将存在于 OWASP 前 10 名中)。
其次,如果您不管理身份提供者,那么您不应该尝试将页面嵌入到不同的域中。他们设置这些值是有原因的。在哪个世界里,尝试做你的伴侣管理他们的身份明确禁止的事情是很酷的?也许您应该问他们是否允许您嵌入页面?
最后,如果您的身份提供者同意允许您将登录页面嵌入到辅助域中,那么 PingFederate 中有几种方法可以实现这一点,根据使用的 PingFederate 版本使用不同的方法。它可以通过编辑 PingFederate 生成的标头来实现,它可以是 PingFederate 中的虚拟主机选项设置等。PingFederate 管理员如果需要帮助配置此设置,可以联系 Ping。
推荐阅读
- elasticsearch - Kibana 可视化数据表 - 单独列中聚合函数之间的区别
- r - 使用 for 循环绘制不同的颜色
- flutter - AnimatedContainer 内的文本溢出
- java - kotlin 中的 java.util.ConcurrentModificationException
- javascript - 返回数组中对象的值
- swift - 如何检查可选的@ViewBuilder 内容
- c# - 在 C# 中为特定元素值过滤 XML
- mysql - 如何使用派生表优化查询?
- java - 方法是否属于存储库模式?
- git - 如何在 git 中有一个同步默认但被忽略的文件?