我正在 .net 5.0 上实现一个简单的 Web 应用程序。
在页面上,我有以下元素:
<img src="data:image/png;base64,iVBORw0..." >
当我在本地机器上运行代码时,一切顺利。但是当我在服务器上运行它时,我注意到没有显示图像。
原因是
拒绝加载图像'data:image/png;base64,iVBORw0...' 因为 它违反了以下内容安全策略指令: “默认-src https:”。请注意,'img-src' 没有明确设置,所以 'default-src' 用作后备。
我已经尝试了以下解决方案:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear/>
<add name="Content-Security-Policy" value="default-src * 'unsafe-inline' 'unsafe-eval' data: blob:;" />
</customHeaders>
</httpProtocol>
</system.webServer>
所有这些操作的结果是:我现在有 2 个 csp 响应头:
<块引用>content-security-policy: default-src * 'unsafe-inline' 'unsafe-eval' 数据:blob:;
内容安全策略:default-src https:
第二个是标准的,第一个是我的。
如果有人知道这是否可行以及如何更改 CSP 响应标头的默认值,请分享您的想法。因为在目前的情况下,我看不到使用带有内联数据的 IMG 元素的任何可能性。
答案 0 :(得分:0)
标题
content-security-policy: default-src https:
不是由 .net 添加的,而是由代理添加的。
结果:问题无效,应通过网络配置解决。