Обеспечение безопасности SQL-вставки - PullRequest
1 голос
/ 14 ноября 2011

Я все еще новичок в области SQL, поэтому у меня есть вопрос о том, пользуюсь ли я безопасной практикой.
У меня есть пользовательская таблица с колонкой для дополнительных заметок, которая должна содержать практически все, что может набрать человек. Я забочусь (или думаю, что так) о одинарных кавычках в поле заметок, выполнив 1002 *

notes = notes.replace("'", "''");

Затем запрос, который я выполню, составляется так:

String query = "INSERT into users (username, password, notes) VALUES('" + username + "' , '" + password + "' , '" + notes + "'";

Кроме того, что пароль не был зашифрован, что еще мне здесь не хватает? Я не ожидаю, что многие хакеры узнают о существовании этого программного обеспечения, но, опять же, никто не ожидает, что их код будет взломан.

Ответы [ 3 ]

3 голосов
/ 14 ноября 2011

Всегда используйте параметризованные запросы.

Использование ASP.NET C #:

SqlCommand cmd = new SqlCommand("INSERT INTO TableA (Username, Password, Notes) VALUES (@Username , @Password, @Notes)", Conn);
cmd.parameters.add("@Username",sqldbtype.nvarchar).value = username;
cmd.parameters.add("@Password",sqldbtype.nvarchar).value = password;
cmd.parameters.add("@Notes",sqldbtype.nvarchar).value = notes;
cmd.executenonquery();

Тогда вам не нужно беспокоиться об одинарных кавычках или SQL-инъекции.

2 голосов
/ 14 ноября 2011

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

Вы также можете проверитьэтот сайт, так как он предоставляет много информации об улучшении вашей безопасности (включая борьбу с SQL-инъекцией): https://www.owasp.org/index.php/Main_Page

1 голос
/ 14 ноября 2011

Google для «подготовленных заявлений» - безопасный способ выполнения запросов с пользовательским вводом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...