1

我正在尝试修复 checkmarx 扫描给出的安全问题。在类型中,“信任边界违规”。我尝试了多种解决方案,但似乎都没有。

我尝试了大多数其他解决方案提供的验证检查,也尝试了规范化。但它仍然无法正常工作。

public static String sanitize(String inputString) {

if (!inputString.matches("[-0-9a-zA-Z_]+")) {
    return null;
}

return ESAPI.encoder().canonicalize(inputString.replace("/", "").replace("..", ""), false, false);    
}

Checkmarx 显示的问题:此元素的值在未经过适当清理或验证的情况下流经代码,最终存储在服务器端 Session 对象中。(违反信任边界)

4

1 回答 1

2

这是这个 Checkmarx 查询的一个众所周知的“错误”;违反信任边界 ( CWE-501 )。问题可能是您将在会话中存储数据,其中包含经过净化和没有经过净化的对象。我看到你是代码,你似乎做了一些清理工作。我认为这是您正确的白名单。

如果您这样做(清理),您应该将其视为“误报”。我知道 Checkmarx 在报告了其中一些之后正在研究它。这在下一个 Checkmarx 版本中应该会更好

于 2019-11-07T09:59:03.307 回答