内容安全政策似乎非常强大,但我认为它并不完美(我已经看到将其称为XSS的“部分”预防的来源)。我的问题是:它不会阻止什么样的XSS攻击?
答案 0 :(得分:2)
并非所有浏览器都实现了它,因此使用不受支持的浏览器的用户不提供保护。
http://caniuse.com/#search=csp
即使在支持的浏览器上,除非内容安全策略要禁用所有JavaScript(内联/内部/外部域),否则它仍然会向可以运行JavaScript的区域打开。这意味着,如果任何恶意JavaScript可以进入这些区域,那么内容安全策略将不会阻止XSS发生。
CSP不会停止XSS的一些例子:
这些只是我能想到的一些例子。
其中一些问题似乎可以通过使用CSP Level 2指令来缓解,但对它们的支持有限。
简而言之,CSP是一个非常好的防守层,但它不应该是你唯一的防线。虽然它不会覆盖所有内容,也不会涵盖当前所有支持它的浏览器,但它是我可以用来保护我的应用程序和用户安全的附加安全层。