我正在使用自己添加SVG图像的js插件。 我已将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正确?
答案 0 :(得分:3)
该SVG图片由data:
网址提供,因此您的CSP政策必须更新才能允许。
您没有显示当前的政策或设置的位置,但假设您使用Content-Security-Policy
标题设置它并且当前有object-src 'unsafe-eval'
,那么您可以允许data:
这些网址通过更新政策的这一部分来显示如下:
Content-Security-Policy: object-src data: 'unsafe-eval'
这只显示了Content-Security-Policy
标题中当前政策的相关部分。无论您目前在该标头值中有哪些其他指令,您都希望保持原样。