内容安全政策:允许所有外部图像?

ric*_*hey 6 apache security xss content-security-policy

我想只允许来自我的本地服务器的脚本有一些例外,比如jQuery等,但是可以灵活地加载外部图像.我知道有一个指令

Content-Security-Policy: script-src 'self' https://apis.google.com; img-src 'self' https://www.flickr.com;
Run Code Online (Sandbox Code Playgroud)

允许来自我自己的网络服务器和Flickr的图像,但是是否可以允许来自所有来源的图像- 或者这会违反CSP的整个概念,因此是不可能的?我正在维护一个经常需要嵌入外部图像的博客,所以它基本上决定了它是否有意义,并且可以管理将CSP添加到我的网站.

ore*_*ake 12

在安全性方面包含来自所有来源的图像是一种最安全的做法,但您可能不喜欢可以使用的图像内容.

要允许所有图像,请使用:

img-src * data:;
Run Code Online (Sandbox Code Playgroud)

将此限制为https:源可能是合理的,因此您的用户不会收到混合内容(断开锁定)错误:

img-src https: data:;
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,请务必发送X-Content-Type-Options: nosniff"以防止Chrome/IE中发生的内容类型嗅探.我不确定firefox是否会将指向javascript文件的图像标记视为由于嗅探而将其视为Javascript,但是您script-src应该防止它变得非常糟糕.我不确定apis.google.com主机用户脚本是否仅限于典型的开源库.

  • `X-Content-Type-Options: nosniff` 是一个有用的标签,我推荐它,但是 `<image>` 标签无法使用 src 属性从服务器加载 JavaScript,即使内容类型确实返回为`应用程序/javascript`。 (2认同)