MS SQL / Express

шал, что «каждый» использует параметризованные SQL-запросы для защиты от атак с использованием SQL-инъекций без необходимости аннулировать каждую часть пользовательского ввода.

Как ты это делаешь? Вы получаете это автоматически при использовании хранимых процедур?

Так что мое понимание этого не параметризовано:

cmdText = String.Format("SELECT foo FROM bar WHERE baz = '{0}'", fuz)

Будет ли это параметризовано?

cmdText = String.Format("EXEC foo_from_baz '{0}'", fuz)

Или мне нужно сделать что-то более обширное, чтобы защитить себя от внедрения SQL-кода?

With command
    .Parameters.Count = 1
    .Parameters.Item(0).ParameterName = "@baz"
    .Parameters.Item(0).Value = fuz
End With

Есть ли другие преимущества использования параметризованных запросов помимо соображений безопасности?

Обновление: эта замечательная статья была включена в один из вопросов от Grotok.http://www.sommarskog.se/dynamic_sql.html

Ответы на вопрос(6)

Ваш ответ на вопрос