相关疑难解决方法(0)

什么时候JavaScript的eval()不是邪恶的?

我正在编写一些JavaScript代码来解析用户输入的函数(用于类似电子表格的功能).解析了公式后,我可以将其转换为JavaScript并eval()在其上运行以产生结果.

但是,eval()如果我可以避免它,我总是回避使用,因为它是邪恶的(而且,无论是对还是错,我一直认为它在JavaScript中更加邪恶,因为要评估的代码可能会被用户改变).

那么,什么时候可以使用它?

javascript coding-style eval

253
推荐指数
9
解决办法
8万
查看次数

内容安全策略(CSP) - 安全使用unsafe-eval?

我们使用以下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的安全风险是什么?在什么情况下,这仍然会让我们面临跨站点攻击?

content-security-policy

7
推荐指数
2
解决办法
2万
查看次数