当前位置: 首页 > 知识库问答 >
问题:

CheckMarkx::HRA\u JAVA\u CGI\u REFLECTED\u XSS\u ALL\u客户端问题

阎彬炳
2023-03-14

我正在与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(“一些URL”)。openConnection()。

所以,checkmarx在《in》中强调了这个问题。readLine()。

我尝试的变通方法:

1: StringEscape eUtils.unescapeJson(in.readLine()),这没有帮助。

2: 在中使用。线条()。collect(Collectors.joining())代替in。readline()通过在谷歌的某个地方阅读。它帮助解决了这个问题,但在大会上引入了一个新的。getInputStream()(相同的漏洞)。

请帮助解决此问题。提前谢谢。

共有1个答案

郜光明
2023-03-14

从技术上讲,它应该是StringEscape eUtils.escapeJson(in.readLine())而不是StringEscape eUtils.unescapeJson(in.readLine())。目的是输出编码以防止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、escapeHtml L3、escapeHtml L4方法。

与您的安全团队合作更新Checkmarx查询以包含逃逸Json,或者您可以使用Checkmarx识别的替代方法,例如替换恶意标签的替换方法

 类似资料:
  • 我使用的是kafka-clients-0.10.1.1(单节点单代理) auto.create.topics.enable的默认值为true。 1.我正在使用以下方式向主题发送消息: 用于消费:

  • 1、MVC、MVP、MVVM的区别 MVC 模式将程序分为三个部分:模型 、视图(xml文件)、控制器(activity)。目的:将业务逻辑放在控制器里,把业务逻辑和视图层分离;缺点:Activity变得臃肿,Model 将新的数据发送到 View。 MVP 模式将程序分为三个部分:模型、视图(activity)、管理层(Presenter)。MVC模式的View 层和 Model 层存在耦合,M

  • 我正在遵循教程和: 将一个ejb部署到Wildfly 8- Wildfly在部署ejb时返回此消息: 我的客户端尝试: 错误: 我向客户端添加了以下库(除了ejb本身):/library/WildFly/modules/system/layers/base/org/jboss/as/appclient/main/WildFly-appclient-8.1.0。最终的jar(编译范围) 老实说,不确

  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 我们计划将主动 MQ (STOMP) 用于我们的一个项目。其中一个要求是,如果我们发现用户不合适,就将其踢出/禁止。如何通过单板技术实现这一点?有点像在 IRC 中踢球的东西。

  • 我正在使用节点0.10.26,并试图通过客户端验证建立https连接。 服务器代码: 客户代码: 我使用以下命令创建了证书,每次都将“uname-n”的结果作为“Common Name”提供: 我已经使用客户端和服务器证书的所有组合(即:[(server1,client1),(server1,client2),(server2,client1),(server2,client1),(server2