动态代码评估:JNDI参考注入/动态代码评估:代码注入

时间:2017-03-21 05:23:38

标签: jndi code-injection fortify

我已经为我的其中一个模块运行了强化扫描,我收到了  动态代码评估:JNDI Reference Injection漏洞问题  显示在下面的行

  

查找(数据源)

数据源是动态的。我该怎么办才能防止这种情况发生  无法使数据源保持静态,因为它破坏了项目功能

当我运行强化扫描时,我还发出了动态代码评估:代码注入问题。它显示在我使用eval函数的地方,该函数用于评估在文本框中输入的表达式并处理相同的脚本。

  

var elem = document.getElementById(" jse");   的eval(elem.value);

我们可以删除以解决这些漏洞而不影响其功能。

1 个答案:

答案 0 :(得分:1)

  1. 减轻这种情况的标准方法是拥有dataSource变量的有效值列表,并在查找之前针对该列表进行验证。

    从理论上讲,可以遵循以下原则:

    List<String> lookup = new ArrayList<>();
    lookup.add("datasource1");
    lookup.add("datasource2");
    lookup.add("datasource3");
    ....
    
    if (lookup.contains(userInputDatasource)) {
        doLookup(userInputDatasource);
    } else {
        throw Exception("Datasoruce not found;")
    }
    
  2. JavaScript评估为not recommended

    eval()函数是邪恶的,永远不要使用它。通常需要使用eval表示您的设计有问题。

    说与上述类似的方法可用于验证输入中仅包含有效值