C# 方法RetrieveTableDisplay()调用使用来自不受信任源的输入生成的SQL查询

C# 方法RetrieveTableDisplay()调用使用来自不受信任源的输入生成的SQL查询,c#,asp.net,sql-injection,fortify,C#,Asp.net,Sql Injection,Fortify,方法RetrieveTableDisplay()调用使用来自不可信源的输入构建的SQL查询。此调用可能允许攻击者修改语句的含义或执行任意SQL命令 string sql = SqlHelper.GetSqlString(Constants.RetrieveTableDisplay) + tableName + " WHERE ACCOUNT_NBR='" + AccountNumber + "' ORDER BY " + GenerateOrderByClause(

方法
RetrieveTableDisplay()
调用使用来自不可信源的输入构建的SQL查询。此调用可能允许攻击者修改语句的含义或执行任意SQL命令

string sql = 
    SqlHelper.GetSqlString(Constants.RetrieveTableDisplay) + tableName + 
    " WHERE ACCOUNT_NBR='" + AccountNumber + 
    "' ORDER BY " + GenerateOrderByClause(tableName) + " ) a ) where rn > " +
    (currentPageNumber * currentPageSize).ToString() + " AND rn <= " +
    ((currentPageNumber * currentPageSize) + currentPageSize).ToString();

string recordCount = 
    "select count(*) from " + tableName + 
    " WHERE ACCOUNT_NBR='" + AccountNumber + "'";
    //Issue is somewhere here of sql injection

if (!Utils.IsUnitTestCase)
{
    try
    {
        using (DbCommand cmd =
               OraDB.GetSqlStringCommand(this.ProcessTableName(sql)))
        {
            using (IDataReader reader = OraDB.ExecuteReader(cmd))
            {
                object o = OraDB.ExecuteScalar(CommandType.Text, recordCount);
                if (o != null)
                {
                    lstEntities.TotalRecords = Convert.ToInt32(o);
                }

                while (reader.Read())
                {
                    objBasTransactionLog = new BASTransactionLog();
                    PopulateEntity(objBasTransactionLog, reader);

                    lstEntities.Add(objBasTransactionLog);
                }
            }
        }
    }
}
stringsql=
SqlHelper.GetSqlString(Constants.RetrieveTableDisplay)+tableName+
“其中账户编号=”+账户编号+
“'ORDER BY”+GenerateOrderByClause(tableName)+”)a),其中rn>”+

(currentPageNumber*currentPageSize).ToString()+”和rn防止SQL注入的推荐方法是使用
SqlParameter
。 不要使用字符串连接添加参数值


请参见

您将代码审核的结果转储到此处,并希望我们为您修复它,这样您就不必做任何努力来研究和解决此问题了?请重新阅读和。很抱歉,我向像您这样的天才提出了此问题。如果您帮不上忙,请不要让任何人难堪。我已经自己解决了此问题。但是我很同情你,因为你没有时间来解决这个问题,却让你有很多时间。问题是你的问题没有答案,因为没有问题。