Checkmarx:c#中的二阶SQL注入攻击

时间:2017-01-09 14:29:01

标签: c# security sql-injection checkmarx

我如何满足静态代码分析工具(在本例中为checkmarx)以下方法没有问题:

1

Checkmarx告诉我以下内容:

  

方法ExecuteQuery从ExecuteReader元素获取数据库数据。       然后,此元素的值将流经代码        没有经过适当的消毒或验证,最终是       在方法ExecuteQuery中的数据库查询中使用。       这可能会启用二阶SQL注入攻击。

1 个答案:

答案 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();
    }