内容安全策略 img-src 数据哈希 url
Content Security Policy img-src hash of data url
我试图将我的 CSP img-src 限制为我使用的 one 图像,它恰好在我们的 [=28] 中被编码为数据 URL =].像这样:
background-image: url('data:image/svg+xml;utf8,<svg width="14px"...');
我宁愿不只是通过执行“img-src 数据:”来打开所有数据:图像,所以理想情况下我想做的只是使用哈希源格式:
img-src sha512-SHA_OF_DATA_URL_ABOVE
但是,我无法让它工作。我尝试过 仅 散列实际的 SVG,以及包括 mime 类型和数据方案,但没有成功:
> echo -n "<svg width=\"14px\"..." | openssl dgst -sha512 -binary | openssl enc -A -base64
> echo -n "image/svg+xml;utf8,<svg width=\"14px\"..." | openssl dgst -sha512 -binary | openssl enc -A -base64
> echo -n "data:image/svg+xml;utf8,<svg width=\"14px\"..." | openssl dgst -sha512 -binary | openssl enc -A -base64
当我将它们放入 img-src 时,其中 None 似乎有效。我猜数据 URL 图像的奇怪边缘情况是否不支持哈希方法?
CSP2 确实只为 内联脚本 元素 (https://www.w3.org/TR/CSP2/#script-src-hash-usage) and inline styles elements (https://www.w3.org/TR/CSP2/#style-src-hash-usage) 实现了哈希用法。
CSP3 通过 SRI (https://www.w3.org/TR/CSP3/#external-hash).
将使用散列扩展到 外部脚本
不支持通过散列允许 <img>
个元素,将来可能会支持。
我试图将我的 CSP img-src 限制为我使用的 one 图像,它恰好在我们的 [=28] 中被编码为数据 URL =].像这样:
background-image: url('data:image/svg+xml;utf8,<svg width="14px"...');
我宁愿不只是通过执行“img-src 数据:”来打开所有数据:图像,所以理想情况下我想做的只是使用哈希源格式:
img-src sha512-SHA_OF_DATA_URL_ABOVE
但是,我无法让它工作。我尝试过 仅 散列实际的 SVG,以及包括 mime 类型和数据方案,但没有成功:
> echo -n "<svg width=\"14px\"..." | openssl dgst -sha512 -binary | openssl enc -A -base64
> echo -n "image/svg+xml;utf8,<svg width=\"14px\"..." | openssl dgst -sha512 -binary | openssl enc -A -base64
> echo -n "data:image/svg+xml;utf8,<svg width=\"14px\"..." | openssl dgst -sha512 -binary | openssl enc -A -base64
当我将它们放入 img-src 时,其中 None 似乎有效。我猜数据 URL 图像的奇怪边缘情况是否不支持哈希方法?
CSP2 确实只为 内联脚本 元素 (https://www.w3.org/TR/CSP2/#script-src-hash-usage) and inline styles elements (https://www.w3.org/TR/CSP2/#style-src-hash-usage) 实现了哈希用法。
CSP3 通过 SRI (https://www.w3.org/TR/CSP3/#external-hash).
将使用散列扩展到 外部脚本不支持通过散列允许 <img>
个元素,将来可能会支持。