我有以下svg图像:
<svg viewBox="0 0 679.26666 170.12"><title id="title">Disclosure Scotland</title>
<desc id="descA">Main Image</desc><defs id="defs6"></defs><g transform="matrix(1.3333333,0,0,-1.3333333,0,170.12)" id="g10">
<g transform="scale(0.1)" id="g12">
<path id="path14" style="fill:#354a8e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="L 4424.6,237.121">
</path>
</g>
</svg>
它有内联样式,内容安全策略发出以下警告:
拒绝应用内联样式,因为它违反了以下内容安全策略指令:" style -src 'self'“。要么是‘不安全-内联’关键字,要么是散列('sha256-n9prShQTue5kpNbWK2Rpxv1agUjurIm2Wkpn0y7gOvU='),,要么是“不安全-.”)需要启用内联执行。 10 10localhost/:13拒绝应用内联样式,因为它违反了以下内容安全策略指令:" style -src 'self'“。要么是‘不安全-内联’关键字,要么是散列('sha256-hyCd2mGzJH6FFMa/YKxkUO5p7ntTtWZ4+813FvHVP5w='),,要么是“不安全-.”)需要启用内联执行。
我可以通过像这样配置styleSrc
来屏蔽这个错误:
app.use(
helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"],
styleSrc: ["'self'", "'unsafe-inline'"]
}
})
);
我可以为svg配置内联样式吗?
发布于 2018-08-12 11:39:54
不是专门针对SVG的,不是。CSP不允许这种类型的精细控制。你能做的是:
1)使用CSP nonces
2)使用类或ID (以及样式表中相应的CSS )
3)使用JavaScript直接修改CSS https://stackoverflow.com/a/29089970/339440。
发布于 2022-03-24 10:02:13
解决这一问题的最简单方法是直接添加属性,而不是使用内联样式;
<path id="path14" style="fill:#354a8e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="L 4424.6,237.121">
至:
<path id="path14" fill="#354a8e" fill-opacity="1" fill-rule="nonzero" stroke="none" d="L 4424.6,237.121">
https://stackoverflow.com/questions/51807182
复制相似问题