Checkmarx 将 API 路线标记为 "Potentiel reflected XSS"

Checkmarx marks API route as "Potentiel reflected XSS"

代码嗅探器 Checkmarx 将此 API 路由检测为“反射 XSS 所有客户端”。

@GetMapping("/{id}")
public @ResponseBody Language getLanguage(@PathVariable("id") String id) {
    return languageService.getById(id);
}

getById 实现使用 JPARepository

// Language service
@Override
    public Language getById(String id) {
        try {
            return repo.findById(id).orElse(repo.findById("en").get());
        } catch (Exception e) {
            return null;
        }
    }

我不明白为什么它会被标记为这样,考虑到如果输入无效(或者我错了吗?),在存储库中使用 findById() 只会检索任何内容,并且用户不会收到任何“损坏”的东西。

我是否应该忽略这一点并将其视为建议?

我完全忽略了 Checkmarx 的警告。

它似乎是一个非常简化的静态分析器,并且经常不了解它所处的上下文。因此,这个工具给我们带来了很多误报。

这个标记为“清除代码中的密码”的工具实际上是 pswd: client password

的注释

最后还是要对自己的项目进行判断,决定哪里合适不合适。