mar*_*rin 7 content-security-policy
我们使用以下CSP标头:
default-src 'self' *.ourdomain.com; script-src 'self' *.ourdomain.com 'sha256-[...]' 'unsafe-eval';
connect-src 'self' *.ourdomain.com;
style-src 'unsafe-inline' * 'self' data:; font-src *;
img-src * 'self' data:
Run Code Online (Sandbox Code Playgroud)
我们的安全团队的建议不是使用unsafe-eval.
我的问题是:只要我们使用sha256 - [...]来限制我们自己没有部署的任何脚本,在CSP头中仍然保持不安全eval的安全风险是什么?在什么情况下,这仍然会让我们面临跨站点攻击?
ore*_*ake 20
因为eval实际上是不安全的.每种语言中的Eval表示"接受此字符串并执行代码".当然,您可能以半安全的方式使用eval,但只要您允许它,您就会说"任何人都可以在给定入口点的应用程序中执行任意代码".
我认为没有理由使用eval.给我看一个实际有用的代码中需要 eval的情况,我敢打赌,我可以在不使用eval的情况下重写代码或将其声明为不可靠的安全代码.
禁止使用内联脚本只是成功的一半,特别是如果你使用jquery.
测验:此代码是否触发内联脚本违规或eval违规?
$('body').html('<script>alert(1)</script>')
Run Code Online (Sandbox Code Playgroud)
你可能会感到惊讶.
扰流板:
这是评价
| 归档时间: |
|
| 查看次数: |
17923 次 |
| 最近记录: |