Checkmarx二阶SQL注入c#



我从Checkmarx得到这个错误:

应用程序通过在查询中嵌入一个不受信任的字符串来构造这个SQL查询,而没有进行适当的处理。将连接的字符串提交给数据库,在数据库中对其进行解析并相应地执行。

public class CurrClientEntity
{       

public string C_Code { get; set; }

public string C_Id { get; set; }        
}

public CurrClientEntity GetCurrClientId(string c_Code)       
{           
var sql = new StringBuilder(@"SELECT C_CODE,C_ID FROM TBL_CLIENT"); 
sql.Append(" WHERE VALID =:VALID  ");
sql.Append(" AND C_CODE = :C_CODE  ");
var dictionary = new Dictionary<string, object>
{
{ "@C_CODE", c_Code },
{ "@VALID", 'Y' },
};
var parameters = new DynamicParameters(dictionary);
using (IDbConnection conn = CreateConnection())
{
return conn.QueryFirstOrDefault<CurrClientEntity>(sql.ToString(), parameters);
}
}

查看后,Checkmarx SAST不支持Dapper,并且错过了QueryFirstOrDefault()的安全执行
您的代码看起来很好,因此您可以将其标记为not Exploitable并将其作为False Positive结果报告给Checkmarx。

相关内容

  • 没有找到相关文章

最新更新