首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有内联样式的svg的内容安全策略

具有内联样式的svg的内容安全策略
EN

Stack Overflow用户
提问于 2018-08-12 08:43:14
回答 2查看 3.2K关注 0票数 3

我有以下svg图像:

代码语言:javascript
运行
复制
<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来屏蔽这个错误:

代码语言:javascript
运行
复制
app.use(
  helmet.contentSecurityPolicy({
    directives: {
      defaultSrc: ["'self'"],
      styleSrc: ["'self'", "'unsafe-inline'"]
    }
  })
);

我可以为svg配置内联样式吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-12 11:39:54

不是专门针对SVG的,不是。CSP不允许这种类型的精细控制。你能做的是:

1)使用CSP nonces

2)使用类或ID (以及样式表中相应的CSS )

3)使用JavaScript直接修改CSS https://stackoverflow.com/a/29089970/339440

票数 2
EN

Stack Overflow用户

发布于 2022-03-24 10:02:13

解决这一问题的最简单方法是直接添加属性,而不是使用内联样式;

代码语言:javascript
运行
复制
     <path id="path14" style="fill:#354a8e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="L 4424.6,237.121">

至:

代码语言:javascript
运行
复制
     <path id="path14" fill="#354a8e" fill-opacity="1" fill-rule="nonzero" stroke="none" d="L 4424.6,237.121">
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51807182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档