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
的注释
最后还是要对自己的项目进行判断,决定哪里合适不合适。
代码嗅探器 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
最后还是要对自己的项目进行判断,决定哪里合适不合适。