如何修复 CWE-20:输入验证不正确

问题描述 投票:0回答:2

我在我的一个项目中使用了 Polaris 进行静态扫描。扫描结果显示其中一个java类存在CWE-20缺陷。据报道此特定线路。

String propValue = req.getParameter(propertyName);

我尝试了几种可能的方法来解决这个问题,但未能解决。有什么办法可以解决这个问题吗

java static-analysis polaris
2个回答
1
投票

CWE-20 旨在防止产品接收输入或数据,但它不会验证或错误地验证输入是否具有安全正确处理数据所需的属性。

您的单行代码并不能真正解释问题的本质...我假设您只是简单地使用

propValue
而不进行验证?

因此,缓解措施是在使用输入之前保留输入,以防止可疑数据。所以你需要做类似的事情:

String propValue = req.getParameter(propertyName);
if ( propValue.validate() )
{
  ... use it
}
else
{
  ... error condition
}

0
投票

您执行类似的操作来验证输入

String propertyName = req.getParameter("propertyName");
if (propertyName == null || !Pattern.matches("[A-Za-z0-9_]+", propertyName)) {
    throw new IllegalArgumentException("Invalid property name.");
}
String propValue = req.getParameter(propertyName);

我还建议使用实时 AI 支持的 SAST 工具(如 this)来检测漏洞并修复它们。

© www.soinside.com 2019 - 2024. All rights reserved.