Я пытался обеспечить, чтобы мой код не был восприимчив к печально известным SQL Injection Attack. Вопрос вовлекает Строка запроса, наследие код, я управляющий имеет экземпляры встроенного SQL, который применяется:SQL Injection Technique For Query String
string query = @"SELECT * FROM [Order]
WHERE ([Id]=" + Request.QueryString[@"oid"] + ");";
Очевидно, что это плохо, это займет атаку. Мой вопрос достаточно?
command.Parameters.AddWithValue("@OrderId", Request.QueryString[@"oid"]);
Так что теперь запрос имеет параметр, которому передается значение. Я знаю, что он имеет некоторую форму кодирования. Однако этого будет достаточно, чтобы любой злоумышленник мог использовать эту строку запроса? Так должен ли я делать Encode
в строке запроса? Таким образом, он будет безопасно шифровать его, чтобы избежать дальнейшего использования?
Некоторые разъяснения по этому вопросу были бы полезными.
Да, этого достаточно. – Zer0
Вы должны проверить [Может ли мы перестать использовать AddWithValue() уже?] (Http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/) и перестать использовать '.AddWithValue()' - это может привести к неожиданным и неожиданным результатам ... –