我如何满足静态代码分析工具(在本例中为checkmarx)以下方法没有问题:
1
Checkmarx告诉我以下内容:
方法ExecuteQuery从ExecuteReader元素获取数据库数据。 然后,此元素的值将流经代码 没有经过适当的消毒或验证,最终是 在方法ExecuteQuery中的数据库查询中使用。 这可能会启用二阶SQL注入攻击。
答案 0 :(得分:0)
做这个满意的CheckMarx:
public OdbcDataReader ExecuteQuery(string sql)
{
var cmd = new OdbcCommand(sql.Replace("'", ""), connection);
return cmd.ExecuteReader();
}
有趣的是,我自己扫描了这个方法,并且使用命令不满足它:
public OdbcDataReader ExecuteQuery(string sql)
{
OdbcCommand cmd = connection.CreateCommand();
cmd.CommandText = sql;
return cmd.ExecuteReader();
}