CSP表单操作指令覆盖无法在Chrome浏览器中运行

时间:2018-12-29 01:42:47

标签: azure directive content-security-policy

我需要放宽Chrome中的CSP(内容安全策略)以启用带有一些get参数的重定向到Azure登录页面。在处理此类重定向时,Chrome会应用与表单提交相关的政策限制。在这种情况下,默认策略为

<meta http-equiv="Content-Security-Policy" content="form-action 'self' javascript:"/>

在这种情况下,重定向到https://login.microsoftonline.com/... 不会工作。 MDN表示您可以展开允许的目的地列表,我尝试这样做:

<meta http-equiv="Content-Security-Policy" content="form-action 'self' https://*.microsoftonline.com javascript:"/>

它似乎完全无效,因为在控制台上仍然会出现相同的错误:

Refused to send form data to 'https://login.microsoftonline.com' because it violates the following Content Security Policy directive: "form-action 'self' javascript:"

还请注意,按属性顺序播放或删除javascript:部分确实有帮助。但是,Chrome显然已删除了self部分,因为在这种情况下,我无法将数据发送回原点。就像他们让您收紧政策但不放松政策一样。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我认为是由于form-action(根据documentation)引起的:

  

HTTP Content-Security-Policy(CSP) form-action 指令限制了URL,这些URL可以用作给定上下文中表单提交的目标。

也许您可以尝试使用default-src指令:

default-src

  

HTTP Content-Security-Policy(CSP) default-src 指令用作其他CSP提取指令的后备。

希望有帮助!

答案 1 :(得分:0)

请勿包含协议(https),我认为它会起作用