【发布时间】:2021-05-22 17:48:39
【问题描述】:
我正在尝试将我的 Web 应用程序作为 Office 加载项包含在内。加载项包含使用 iframe 的应用程序,因此我需要调整应用程序的“内容安全策略”标头以使其正常工作。
当前标头的值为content-security-policy: frame-src 'self' ; frame-ancestors 'self'; object-src 'none';。如果我将标头设置为 content-security-policy: frame-src 'self' * ; frame-ancestors 'self' *; object-src 'none'; 一切正常,但我不想让每个人都使用 iframe 包含我的应用程序。
所以我尝试限制使用 content-security-policy: frame-src 'self' https://outlook.live.com; frame-ancestors 'self' https://outlook.live.com ; object-src 'none'; 之类的东西,但这不起作用。 Chrome 的 JS 控制台说:Refused to frame 'https://auth-recette-broc.kinexo.fr/' 因为祖先违反了以下内容安全策略指令:“frame-ancestors 'self' https://outlook .live.com”。
“csp 报告”是:
{
"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(https://outlook.live.com)的url不显示为
document-uri? - 为什么当
document-uri和blocked-uri属性相同并且允许self帧时帧被拒绝? - 如何知道预期的 url 作为框架祖先以允许框架?
【问题讨论】:
标签: security iframe outlook http-headers content-security-policy