我希望只允许来自本地服务器的脚本,但有某些例外,例如 jQuery 等,但可以灵活地加载外部图像。 我知道有一个像
这样的指令Content-Security-Policy: script-src 'self' https://apis.google.com; img-src 'self' https://www.flickr.com;
允许来自我自己的网络服务器和 Flickr 的图像,但是是否可以允许来自所有来源的图像 - 或者这会违反 CSP 的整个概念,因此是不可能的?我正在维护一个经常需要嵌入外部图像的博客,因此基本上取决于将 CSP 添加到我的网站是否有意义且易于管理。
就安全性而言,包含所有来源的图像是一种最安全的做法,但您可能不喜欢可以使用的图像内容。
要允许所有图像,请使用:
img-src * data:;
将其限制为
https:
源可能是合理的,这样您的用户就不会收到混合内容(锁损坏)错误:
img-src https: data:;
无论哪种情况,请务必发送
X-Content-Type-Options: nosniff"
以防止 Chrome/IE 中发生内容类型嗅探。我不确定 Firefox 是否会因为嗅探而将指向 javascript 文件的图像标签视为 Javascript,但您的 script-src
应该可以防止这种情况变得可怕。我不确定 apis.google.com
是否托管用户脚本,或者是否仅限于典型的开源库。
就我而言,我想包含缩略图以在上传图像时显示。 您可以将其添加到您的内容安全策略元标记中。
img-src * blob: data:;