内容安全策略(CSP):如何在对象中允许svg图像

问题描述 投票:2回答:1

我正在使用js插件,它自己添加了SVG图像。我已将CSP策略添加到我的网站,但我无法将其配置为允许插件的代码。

它的代码如下:

label=$("<object style='height:10px; width:10px;' type='image/svg+xml' data='data:image/svg+xml;charset=UTF-8," +
"<svg xmlns=\"http://www.w3.org/2000/svg\">" +
"<rect x=\"0\" y=\"0\" some parameters/>"+
"<text>SomeText</text></svg>'></object>");
el.html(label)

我正在寻找一种允许在对象中呈现的SVG图像的配置。我尝试了不同的选择 - CSP: object-src

但我总是像下一个得到错误:

Refused to load plugin data from 'data:image/svg+xml;charset=UTF-8, my svg here' because it violates the following Content Security Policy directive: "object-src 'unsafe-eval'".

在这种情况下如何配置CSP正确?

javascript svg configuration content-security-policy data-uri
1个回答
3
投票

该SVG图像由data: URL提供,因此必须更新您的CSP策略以允许该操作。

您没有显示您当前的政策或您设置的位置,但假设您使用Content-Security-Policy标头设置它并且它目前有object-src 'unsafe-eval',那么您可以通过更新该部分策略来允许data:网址看起来像这样:

Content-Security-Policy: object-src data: 'unsafe-eval'

这显示了Content-Security-Policy标题中当前政策的相关部分。无论您目前在该标头值中有哪些其他指令,您都希望保持原样。

© www.soinside.com 2019 - 2024. All rights reserved.