Security 需要帮助了解CSP报告并设置正确的框架url吗
我正在尝试将我的web应用程序作为Office外接程序。外接程序包括使用iframe的我的应用程序,因此我需要调整我的应用程序的“内容安全策略”标题以使其正常工作 当前标题的值是Security 需要帮助了解CSP报告并设置正确的框架url吗,security,iframe,outlook,http-headers,content-security-policy,Security,Iframe,Outlook,Http Headers,Content Security Policy,我正在尝试将我的web应用程序作为Office外接程序。外接程序包括使用iframe的我的应用程序,因此我需要调整我的应用程序的“内容安全策略”标题以使其正常工作 当前标题的值是内容安全策略:frame src'self';框住祖先的“自我”;对象src'none'。如果我将标题设置为内容安全策略:frame src'self'*;框架祖先的“自我”*;对象src'none'一切正常,但我不想让每个人都使用iframe包含我的应用程序 因此,我试图限制使用内容安全策略:frame src'sel
内容安全策略:frame src'self';框住祖先的“自我”;对象src'none'代码>。如果我将标题设置为内容安全策略:frame src'self'*;框架祖先的“自我”*;对象src'none'代码>一切正常,但我不想让每个人都使用iframe包含我的应用程序
因此,我试图限制使用内容安全策略:frame src'self'https://outlook.live.com; 框住祖先的自我https://outlook.live.com ; 对象src'none'代码>但这不起作用。Chrome的JS控制台显示:拒绝帧https://auth-recette-broc.kinexo.fr/'因为祖先违反了以下内容安全策略指令:“框架祖先'自我'https://outlook.live.com“
“顾客服务提供商报告”是:
{
"document-uri": "https://auth-mywebsite.xx/",
"referrer": "https://yy-mywebsite.xx/",
"violated-directive": "frame-ancestors",
"effective-directive": "frame-ancestors",
"original-policy": "frame-src 'self' https://outlook.live.com; frame-ancestors 'self' https://outlook.live.com ; object-src 'none';",
"disposition": "report",
"blocked-uri": "https://auth-mywebsite.xx/",
"status-code": 0,
"script-sample": ""
}
我不理解这个csp报告
为什么父框架URI()的url不显示为文档URI
当文档uri
和阻止的uri
属性相同并且允许self
进行帧设置时,为什么拒绝帧设置
如何知道作为框架祖先的预期url以允许框架
为什么父框架URI()的url不显示为文档URI
帧祖先指令是特殊的-它作用于父页面,而其他指令作用于页面本身(发布CSP)。
因此,在帧祖先
冲突的情况下,文档uri
是的Url(它发布CSP)
当文档uri和阻止的uri属性相同且允许self进行帧设置时,为什么拒绝帧
阻止的uri
如果是帧祖先
则取决于浏览器:
- Chrome显示为
阻塞uri
锁定容器(iframe)本身的uri
- Firefox从顶级窗口获取
阻塞的uri
(但对于嵌套级别>1,Firefox有一个bug,并发送一个空的阻塞的uri
)
因此,在Chrome中,阻塞的uri
将等于文档uri
据我所知,您有一个https://yy-mywebsite.xx
嵌入https://auth-mywebsite.xx/
https://auth-mywebsite.xx/
页面发布CSP框架祖先“自我”;对象src'none'代码>
在这种情况下,'self'
表示https://auth-mywebsite.xx/
因此嵌入到https://yy-mywebsite.xx
是不允许的。您必须至少有<代码>帧祖先的自我'https://yy-mywebsite.xx; 对象src'none'代码>
如何知道作为框架祖先的预期url以允许框架
帧祖先
指令检查所有祖先(父级的整个上游链),而不仅仅是最近的父级。因此,您必须指定允许嵌入iframe的所有主机。非常感谢您给出了准确的答案。实际上,我必须使用这个CSP值frame“self”https://yy-mywebsite.xxhttps://outlook.live.com; 对象src'none'代码>使其工作。这是有道理的,但我没有抓住这一点