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