即使在验证检查 java webapp 之后也违反了信任边界

Trust boundary violation even after validation check in java webapp

我正在尝试修复由 checkmarx 扫描给出的安全问题。在类型上,"trust boundary violation"。我尝试了多种解决方案,但 none 似乎有效。

我尝试过大多数其他解决方案提供的验证检查,也尝试过规范化。但还是不行。

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

这是此 Checkmarx 查询的众所周知 "bugs";违反信任边界 (CWE-501)。问题可能是您将数据存储在已清理和未清理对象的会话中。如我所见,您是代码,您似乎做了一些清理工作。我认为这是您正确的白名单。

如果你这样做(消毒),你应该将其视为 "False Positive" 。我知道 Checkmarx 在报告其中一些问题后正在处理它。这在下一个 Checkmarx 版本中应该会更好