我刚刚在开发环境中将内容安全策略应用于Azure Web App,并且运行良好。
我还可以将其上传到Azure上的我的登台站点,并且在那里可以正常运行,并且该策略已正确应用,然后由我的浏览器实施。但是,当我进行交换时,出现以下错误:
无法交换网站“ MySite”的版位,因为工作进程在 'staging'插槽中止了预热请求。如果网站有 IP限制或URL重写规则块的HTTP请求。
这是我要应用的策略(在我的 web.config 中定义)
<add name="Content-Security-Policy"
value="default-src 'none';
script-src 'self' https: 'unsafe-inline' 'unsafe-eval';
style-src 'self' https: 'unsafe-inline';
img-src 'self' https: 'unsafe-inline' data: blob:;
connect-src 'self' https:;
font-src 'self' https:;
object-src 'none';
media-src 'self';
child-src 'self';
form-action 'self';
frame-ancestors 'none'"/>
出什么问题了?
答案 0 :(得分:1)
Azure不象在web.config中的内容安全-策略值的回车符。
如果您使用 App Service编辑器(可通过Azure门户使用)检查 web.config ,那么您将看到回车符已被编码并转换为进入
&#xD;&#xA;
创建以下无效的CSP,这就是交换中断的原因:
default-src'none';&#xD;&#xA; script-src'self'https: 'unsafe-inline''unsafe-eval';&#xD;&#xA; style-src'self'https: '不安全直插';&#的xD;&#XA; img-src'self'https:'unsafe-inline' 数据:blob:;&#xD;&#xA; connect-src'self'https :; &#xD;&#xA; font-src'self'https:;&#xD;&#xA;对象-src的 '无';&#的xD;&#XA; media-src'self';&#xD;&#xA; child-src'self';&#xD;&#xA; 形式动作'self';&#xD;&#xA; 帧祖先“无”
总之,我们需要输入全部在一行上降低了可读性,但需要天青交换我们的电信运营商。