我使用__repr__()
标记将域名列入白名单。列表变得非常大,所以我想知道在meta http-equiv="Content-Security-Policy"
值中使用新行是否可以?
content
编辑:刚发现<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;
">
在多行validator.w3.org
值上显示错误,因此我猜不允许这样做。
答案 0 :(得分:4)
W3C HTML Checker(也就是验证者)的维护者。 HTML检查器不会报告多行content
值的错误。它为您上面的示例报告的错误是:
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:
content-type
default-style
refresh
X-UA-Compatible
因此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部分,并且这个补丁可能会在本周晚些时候合并到规范中。