我在字符串中有JavaScript代码,我根据某些条件动态获取(某些用户操作的结果)。
现在我想知道我是否应该简单eval
它(可以工作,测试)或者我应该在DOM中插入一个<script>
,其中包含字符串的值。 XSS风险部分对我来说很清楚(脚本绝对不会使用用户输入的任何内容)。想知道由于插入<script>
标签而产生的范围相关问题(如果有)。
答案 0 :(得分:3)
如果您评估的代码来自可靠来源,则没有理由避免使用eval。如果它是您服务器上的数据并且不包含用户生成的代码,那么eval。 Eval并不总是邪恶的。
答案 1 :(得分:3)
制作脚本元素并在eval
上插入javascript没有任何安全优势。使用eval
意味着它可以访问任何局部变量,因此如果您的eval
代码需要访问本地变量,则范围仅是一个问题。