use*_*280 8 javascript xss google-chrome content-security-policy
我有一个页面,我设置了内容安全策略的script-src,如下所示:
script-src 'self' *.uservoice.com *.intuit.com ajax.googleapis.com localhost:*
Run Code Online (Sandbox Code Playgroud)
当我使用硬编码的内联脚本加载页面时,我已创建自己进行测试,它被阻止,如预期:
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"script-src'self'*.uservoice.com*.intuit.com ajax.googleapis.com localhost:*".要么是'unsafe-inline'关键字,哈希('sha256 -...'),要么是nonce('nonce -...')来启用内联执行.
但是,当我动态插入新的脚本标记时,脚本不会被阻止,例如,这仍然会执行:
$("body").append("<script>alert('xss');</script>")
Run Code Online (Sandbox Code Playgroud)
我在这里使用Chrome作为浏览器进行测试.我希望这个脚本也会被阻止,因为那样会有助于防止xss.有什么我可以改变来阻止这种类型的脚本注入吗?
使用append或添加的脚本innerHtml不会被执行,除非您使用eval(). 所以这并不违反CSP。
尽管这看起来像是跨站点脚本攻击,但结果是无害的。HTML5 规定不应执行通过innerHTML 插入的标签。1
请参阅使用innerHTML 插入的脚本元素在插入时不会执行。
| 归档时间: |
|
| 查看次数: |
905 次 |
| 最近记录: |