Como lidar com este Aviso de injecção SQL (CA2100)
Abaixo está o código que obtive da página da Microsoft: SqlCommand
public static Int32 ExecuteNonQuery(String connectionString, String commandText, CommandType commandType, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(commandText, conn))
{
// There're three command types: StoredProcedure, Text, TableDirect. The TableDirect
// type is only for OLE DB.
cmd.CommandType = commandType;
cmd.Parameters.AddRange(parameters);
conn.Open();
return cmd.ExecuteNonQuery();
}
}
}
No entanto, a análise de código VS ainda se queixa de "CA2100":
Eu sei a razão exacta pela qual o aviso está lá, mas a anyidea sabe como se livrar dele? Dada a configuração do texto de comando dentro da função não é aceitável, uma vez que eu quero que seja um parâmetro.aviso CA2100 o texto da consulta passou para ' SqlCommand.SqlCommand (string, SqlConnection)' in 'FlexClaimFormRepository.ExecuteNonQuery (string, string, CommandType, params SqlParameter[])' poderia conter as seguintes variáveis 'commandText'. Se alguma destas variáveis puder vir da entrada do utilizador, considere a utilização de um procedure or a parameterized SQL query instead of building the query with string concatenations.
0