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

如何修复有效载荷消毒中的checkmarx错误

田嘉慕
2023-03-14

我有一个spring boot service(2.4.5)显示了一个checkmarx错误,我们需要清理请求有效负载。我们如何对请求有效载荷进行消毒?

 @ApiOperation(value = "Executes new report. The response contains the new job id.")
@PostMapping(value = "/execute")
public ResponseEntity<MyResponse<Object, Void>> execute(
        @RequestBody final MyInput input) {.......}

对于“@RequestBody final MyInput Input”,我得到以下checkmarx错误消息:

我想消毒我的有效载荷。或者除了使用DTO,然后将其转换为我的数据库实体之外,没有其他选择

共有1个答案

蓬运诚
2023-03-14

根据对漏洞的描述,我假设Checkmarx检测到的确切漏洞是“启发式SQL注入”。如果能看到接收器在哪里(漏洞在哪里传播),而不仅仅是源(“@RequestBody final MyInput Input”),那就更好了。

第一种方法是使用参数化或准备好的语句,这里有一个指向OWASP的cheatsheet的链接,它对您很有用

我认为Checkmarx还希望使用encodeForSQL函数,这需要您使用OWASP企业安全API库

input = ESAPI.encoder().encodeForSQL(new MySQLCodec(), input);

或适当更改数据库编解码器

 类似资料:
  • 问题内容: 我正在使用 PHP , ExtJS 和 ajax存储 。 它不通过POST或GET发送数据(在创建,更新,销毁时)。在 Chrome控制台中, 我在“ 请求有效负载 ”字段中看到我的传出参数为JSON 。 $ _POST 和 $ _GET 为空。 如何在PHP中检索它? 问题答案: 如果我正确理解这种情况,那么您只是通过http正文传递了json数据,而不是数据。 您可以使用以下代码段

  • 我使用Firebase的云函数编写了一个云函数,该函数向Firebase消息传递的某些主题发送通知。函数的最后部分定义要发送的有效负载,然后发送: 但是,我在Firebase控制台中获得了错误日志: 错误:消息负载包含"notification.data"属性的无效值。值必须是字符串。 当我注销有效负载时,我确认它是所有字符串: 然而,当我从我的iPhone应用程序发送相同的有效载荷(我试图避免,

  • 我试图将一个报告从Google Ads API拉到Google sheets中,但我无法让API将我的查询识别为查询

  • 我有一个“DataChannel”,它使用入站通道适配器从DB获取结果集。在这里,我从db获得了一个名为'process_id'的字段。在通过int:HTTP-Outbound网关调用外部系统之后,我定义了一个恢复通道。我只想对该process_id执行更新查询。但是我无法在恢复通道中获得进程id。获取一个异常无效属性“payload[process_id]”...无论如何,是否可以将proces

  • 我已经在谷歌上搜索了这个,也在StackOverflow上搜索了一个答案。但是,对于如何净化复选框值,还没有一个明确的答案。 我明白,如果我的输入是: 那么,我应该如何消毒复选框/收音机输入?我应该用(int)检查值吗?我应该像处理其他输入/选择字段一样清理值吗? 记录在案的是,我正在使用WordPress开发我的网站,例如,为了净化文本输入,我正在这样做: 我也应该在复选框上运行所有这些检查吗?