SQL Injection работает в winforms? - PullRequest
4 голосов
/ 31 марта 2011

Я делаю программное обеспечение для Windows на C #.Я прочитал о sql-injection, но не обнаружил, что оно работает в моем приложении.

Работает ли SQL-инъекция в winforms?
Если да, как их предотвратить.

РЕДАКТИРОВАТЬ: Я использую текстовые поля для чтения имени пользователя и пароля.и с помощью textboxex я обнаружил, что текст из текстового поля находится в двойных кавычках ("").Так что я не нашел, что это сработало.

И когда я использую Кавычки " ИЛИ ' в текстовом поле, текст читается как \" ИЛИ \'

Пример:

            ...................
USER NAME:  | a" OR "1"=="1   |
            ```````````````````
// it is read as textBox1.Text = "a\" OR \"1\"==\"1";

Ответы [ 3 ]

6 голосов
/ 31 марта 2011

SQL-инъекция - это общая проблема, не зависящая от какой-либо технологии. Если вы используете .NET и хотите предотвратить SQL-инъекцию , используйте всегда SqlParameter вместо конкатенации строк.

3 голосов
/ 31 марта 2011

Да. Самый простой способ предотвратить это - использовать SqlParameter s для любого пользовательского ввода, отправленного в базу данных. Или не используйте SqlDataAdapter и используйте вместо этого Entity Framework.

2 голосов
/ 31 марта 2011

Внедрение SQL вызвано использованием данных, вводимых пользователем непосредственно в операторах SQL, созданных на лету (называемых динамическим SQL), что позволяет пользователям нарушать SQL или «вводить» свой собственный код SQL.

Использование хранимых процедур или SQL с параметрами позволяет обойти это.

Так что да, это может произойти в winforms, если SQL-код запрограммирован таким образом.

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