如何修复由于在java脚本中使用eval()而在强化扫描中的动态代码评估问题

How to fix dynamic code evaluation issue in fortify scan because of using eval() in java script

本文关键字:扫描 动态 问题 评估 代码 eval 何修复 java 脚本      更新时间:2023-09-26

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); 是安全违规的代码。如何解决此问题。请参阅问题详细信息和解决问题的建议问题解释

建议

解决问题

完全取决于您使用的strItems变量的计算结果(例如,如何使用它?

如果该值是另一个元素的 ID,则将 eval 行更改为 this 将起作用:

objItems = document.getElementById(strItems);

但是,如果它是一个元素的名称...

//presuming there is at least 1 match by name, drop the index if you want the "set"
objItems = document.getElementsByName(strItems)[0];

还是别的什么?您需要相应地更改代码。