如何解决CheckMarkx :: HRA_JAVA_CGI_REFLECTED_XSS_ALL_CLIENTS 问题
我正在努力解决 CheckMarx 漏洞之一。我需要一些指导来支持这一点。 下面是我的代码:
try(Bufferedreader in = new BufferedReader(new InputStreamReader(con.getInputStream()))){
String content = null;
while((content = in.readLine()) != null) {
// Logic to Parse JSON data and use it.
}
}
这里con是(HttpurlConnection)新的URL("some url").openConnection()。
因此,checkmarx 突出显示了 in.readLine() 中的问题。
我尝试的解决方法:
1:StringEscapeUtils.unescapeJson(in.readLine()),它没有帮助。
2:使用 in.lines().collect(Collectors.joining()) 代替 in.readline() 在谷歌的某个地方阅读。 它有助于解决此问题,但在 con.getInputStream() 中引入了一个新漏洞(相同的漏洞)。
请帮忙解决这个问题。 提前致谢。
解决方法
从技术上讲,它应该是 StringEscapeUtils.escapeJson(in.readLine()) 而不是 StringEscapeUtils.unescapeJson(in.readLine())。目的是输出 encode 以防止 XSS,而不是相反。
try(Bufferedreader in = new BufferedReader(new InputStreamReader(con.getInputStream()))){
String content = null;
while((content = StringEscapeUtils.escapeJson(in.readLine())) != null) {
// Logic to Parse JSON data and use it.
}
}
不过,我认为 Checkmarx 不会将其识别为消毒剂,我只能看到它只在 StringEscapeUtils 下查找 escapeXml、escapeHtml、escapeHtml3、escapeHtml4 方法。
与您的安全团队合作更新 Checkmarx 查询以包含 escapeJson,或者您可以使用 Checkmarx 识别的替代方法,例如替换恶意标签,/> 的替换方法,但这不是完整的证明解决方案虽然被认为是一个强大的安全代码
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。