我有一个页面,我设置了内容安全策略的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.有什么我可以改变来阻止这种类型的脚本注入吗?