将内容安全策略设置为default-src 'self'可以100%防止XSS吗?在这种情况下,XSS是否有可能发生?我能想到的一种可能性是在服务器端动态地将用户输入注入到其中一个脚本中,您同意吗?您还能想到其他漏洞吗?
将内容安全策略设置为default-src 'self'可以100%防止XSS吗?在这种情况下,XSS是否有可能发生?我能想到的一种可能性是在服务器端动态地将用户输入注入到其中一个脚本中,您同意吗?您还能想到其他漏洞吗?
default-src 'self'
的现代浏览器仍然可以执行用户控制的javascript:JSONP
。self
。虽然从self
获取JavaScript似乎相对安全(并且非常普遍),但应尽可能避免使用它。JSONP
端点。CSP不应该作为防止XSS攻击的唯一方式。这种机制仅在客户端有效(如果您将恶意数据保存到数据库中,则可能开始感染与之集成的其他系统),而且并非所有浏览器都实现了它(http://caniuse.com/#search=csp)。
要防止XSS攻击,您应该始终验证输入数据并对输出数据进行编码。您还可以在JavaScript控制台中打印警告消息,以防止某种程度上的Self-XSS攻击(例如打开Facebook页面并打开Chrome开发人员工具-查看控制台中的消息)。
请记住,在网站上的用户输入并不是XSS的唯一来源。恶意数据也可以来自以下几个方面:
如果您具有适当的数据验证和编码(服务器端),则可以另外应用浏览器机制,例如:CSP、X-XSS-Protection或X-Content-Type-Options,以增加对系统安全性的信心。
<script src =“https://evil-server.example.org/ evil.js”> </ script>
,则也可以注入<script> alert('XSS!')</ script>
,其中警报可以由evil.js
的内容替换。 - Aureliadefault-src 'self'
。 - oreoshake