# Assembleia C Injection Verifique
-
03-07-2019 - |
Pergunta
Estou criando uma montagem em C # para MS SQL 2005. Este conjunto cria um procedimento armazenado e executa uma consulta dinâmica com base em parâmetros passados ??para o procedimento armazenado.
Existe uma função simples em C # para injeção prevent SQL?
Por exemplo
string myQuery = "SELECT * FROM dbo.MyTable WHERE lastName = '" + injectionCheck(arg1) + "'";
Esta pergunta foi respondida para a consulta padrão ... mas em situações onde não há nenhuma maneira em torno da construção de uma consulta verdadeiramente dinâmica que eu posso usar em C # para a verificação de injeção?
Por exemplo, estes provavelmente não vai funcionar:
usando @dbname;
SELECT * FROM @Table
Open de chave simétrica @keyName
etc
Solução
Use parâmetros vinculados:
SqlCommand cmd = new SqlCommand(myQuery, conn);
cmd.Parameters.Add("@lastname", SqlDbType.NVarChar, 10, lastName);
Outras dicas
Use parâmetros ....
(Esta foi postado muitas vezes já)
string myQuery = "SELECT * FROM myTable WHERE lastname = @p_name";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = myQuery;
cmd.Parameters.Add ("@p_name", SqlDbType.Varchar).Value = "melp";