Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 内容安全策略:来自Inkscape的SVG,嵌入标记中带有Sozi动画_.htaccess_Svg_Embed_Content Security Policy_Inkscape - Fatal编程技术网

.htaccess 内容安全策略:来自Inkscape的SVG,嵌入标记中带有Sozi动画

.htaccess 内容安全策略:来自Inkscape的SVG,嵌入标记中带有Sozi动画,.htaccess,svg,embed,content-security-policy,inkscape,.htaccess,Svg,Embed,Content Security Policy,Inkscape,在我的网站上,我用Sozi在一个嵌入标记中创建了一个动画SVG作为标题图像 我的.htacess文件CSP头如下所示: 标题集内容安全策略“默认src‘self’” 显然,这还不够 Chrome为SVG中的所有元素提供了大约50种不同的哈希和,有点像这样 拒绝应用内联样式,因为它违反了以下内容安全策略指令:“default src'self'”。可以是'unsafe inline'关键字、哈希('sha256-OXKUZBWLLYUKQYK1CDFCIYCGEDWL0TN33OFZW6SO0U=

在我的网站上,我用Sozi在一个嵌入标记中创建了一个动画SVG作为标题图像

我的.htacess文件CSP头如下所示: 标题集内容安全策略“默认src‘self’”

显然,这还不够

Chrome为SVG中的所有元素提供了大约50种不同的哈希和,有点像这样

拒绝应用内联样式,因为它违反了以下内容安全策略指令:“default src'self'”。可以是'unsafe inline'关键字、哈希('sha256-OXKUZBWLLYUKQYK1CDFCIYCGEDWL0TN33OFZW6SO0U=')或nonce('nonce-…')是启用内联执行所必需的。还请注意,未显式设置“style src”,因此使用“default src”作为回退。”

有没有办法将整个SVG文件(而不是其中具有内联样式的每个元素)列入白名单?对我来说,复制粘贴所有那些散列和是没有意义的,因为这些散列和可以对整个事情进行总结

我已经尝试过对SVG进行散列,并将其插入到标题的Stylesrc部分,但不幸的是,这没有起作用。使用“不安全内联”是可行的(对于样式src),但如果可能的话,这不是我想要使用的


转换Inkscape的内联样式(正如我现在找不到的地方建议的那样)是另一种选择,但这也不是我要问的问题。

没有办法将整个SVG内容列入白名单。如果保留内联样式并需要安全策略,则该策略必须指定浏览器显示的所有哈希值,否则必须使用nonce


否则,浏览器就无法“总结整个事情”。由于在这种情况下使用CSP的目的是确保浏览器能够区分您故意添加到文档中的内联样式与您没有添加到文档中的样式(以及可能由攻击者添加的样式),因此,无需为每个内联样式实例指定哈希或nonce,浏览器无法以其他方式确定哪个是哪个。

使用SVG,样式属性中使用的所有内容也可以表示为属性

这与您的关系不大,因为您使用的是一种工具来生成SVG,但对于手工编辑SVG的人来说,这是不合适的。如果您在诸如
之类的内容上遇到错误,您可以通过执行
来更正该错误,这在严格的规则下是CSP有效的,并且将呈现相同的错误。对所有样式属性执行此操作,您可以让SVG在最严格的CSP规则集下工作