浏览器安全策略说之内容安全策略CSP
发表时间:2014年4月18日 18:05 来源:厂商供稿
目前CSP各个浏览器支持情况可以去http://caniuse.com/#feat=contentsecuritypolicy查看

CSP1.0指令



♦阻止内联代码执行
CSP除了使用白名单机制外,默认配置下阻止内联代码执行是防止内容注入的最大安全保障。
这里的内联代码包括:<script>块内容,内联事件,内联样式
1.1 script代码,<script>……<scritp>
对于<script>块内容是完全不能执行的。例如:
<script>getyourcookie</script>
2.2内联事件。
<a href="""" onclick="handleClick;"></a>
<a href="javascript:handleClick;"></a>
3.3 内联样式
<div class=""tab"" style="display:none"></div>
虽然CSP中已经对script-src和style-src提供了使用”unsafe-inline”指令来开启执行内联代码,但为了安全起见还是慎用”unsafe-inline”。
♦EVAL相关功能被禁用
用户输入字符串,然后经过eval等函数转义进而被当作脚本去执行。这样的攻击方式比较常见。于是乎CSP默认配置下,eval , newFunction , setTimeout([string], ...) 和setInterval([string], ...) 都被禁止运行。