我使用Meta http-equiv =“Content-Security-Policy”标记将域列入白名单.这个列表变得非常大,所以我想知道在内容值中使用新行是否可以?
<Meta http-equiv="Content-Security-Policy" content="
default-src 'self' http://example.com;
style-src 'self' 'unsafe-inline' http://example.com;
script-src 'self' 'unsafe-inline' http://example.com;
">
Bad value Content-Security-Policy for attribute http-equiv on element Meta
也就是说,错误是针对http-equiv属性,而不是针对content属性.
但是请尝试将您的来源更改为:
<Meta name="Content-Security-Policy" content="
default-src 'self' http://example.com;
style-src 'self' 'unsafe-inline' http://example.com;
script-src 'self' 'unsafe-inline' http://example.com;
">
……你会发现它没有报告错误.
所以,你看到的错误是因为:如果Meta元素有一个http-equiv属性,那么according to the HTML spec the value of the http-equiv
must be one of the following:
>内容类型
>默认样式
>刷新
> X-UA兼容
所以HTML规范(尚未)允许http-equiv =“Content-Security-Policy”.
总而言之,这是W3C HTML检查器中的一个错误,因为检查器应该支持http-equiv =“Content-Security-Policy,遵循details provided about http-equiv="Content-Security-Policy
in the Content Security Policy spec.
刚才我raised a checker bug for it.
这基本上也是HTML规范中的一个错误,因为此时HTML规范本身也应该说允许使用http-equiv =“Content-Security-Policy”.所以I’ve raised a bug against the HTML spec for this将http-equiv =“Content-Security-Policy”添加到我上面引用的HTML规范的Pragma directives部分,并且这个补丁可能会在本周晚些时候合并到规范中.