我应该插入一个<脚本>还是应该求值

Should i insert a <script> or should i eval?

本文关键字:脚本 插入 一个 我应该      更新时间:2023-09-26

我有JavaScript代码在字符串中,我根据某些条件动态获得(某些用户操作的结果)。

现在我想知道我是否应该简单地eval它(将工作,测试),或者我应该在DOM中插入一个<script>,其中包含字符串的值。我很清楚XSS风险部分(脚本绝对不会使用用户输入的任何内容)。想知道由于插入<script>标签而引起的范围相关问题(如果有的话)。

制作脚本元素并插入javascript比eval它没有安全优势。使用eval意味着它可以访问任何局部变量,所以只有当你的 evald代码需要访问局部变量时,作用域才是一个问题。

如果正在求值的代码来自可信源,则没有理由避免eval。如果它是服务器上的数据,并且不包含用户生成的代码,则执行eval。