【发布时间】:2016-02-03 14:53:56
【问题描述】:
HP fortify 扫描显示动态代码评估问题如下所示。它说 javascript 中的 eval() 函数会导致安全问题。如何解决这个安全问题。 下面给出代码。
if (objItem.column == 'leftColumn')
{
strItems = lcItems.value
}
else if (objItem.column == 'rightColumn')
{
strItems = rcItems.value;
}
else if (objItem.column == 'toolbox')
{
strItems = tbItems.value;
}
objItems = eval(strItems);
item = null;
这里 eval(strItems);是违反安全的代码。如何解决这个问题。查看问题详细信息和解决问题的建议 Issue explanation
【问题讨论】:
-
没有看到 what 你正在通过
eval运行,不可能告诉你如何在没有eval的情况下重写它(或者你是否可以安全地忽略警告,很可能在这里实际上需要使用eval)。 -
代码试图做什么?例如
strItems变量的计算结果是什么?一旦我们知道了这一点,我们就可以为您提供更好的解决方案。 -
document.getElementById(tbItemsID);
-
你是说
strItems的值实际上是"document.getElementById(tbItemsID);"?如果是这样,我会将其修改为仅是您关心的 ID,然后按 ID 而不是 eval 语句进行查找。 -
如果您只想避免警告,您可以尝试
(0, eval)(strItems)。但是在没有eval的情况下重写代码会好多。
标签: javascript