Простой вопрос регулярных выражений (C #, SQL Server) - PullRequest
0 голосов
/ 09 марта 2010

У меня есть несколько регулярных выражений, это выглядит так:

string regexForDrop = @"^((%27)|'|(\-\-))\s*(d|%64|%44)(r|%72|%52)(o|%6F|%4F)(p|%70|%50)$";

Работает нормально, когда я пишу на вход «--drop», но не работает, когда я пишу «пользователи удаленной таблицы» или что-то в этом роде. Мне нужно, чтобы это работало, независимо от того, что идет после «--drop». Как я могу это реализовать?

Спасибо

Ответы [ 3 ]

6 голосов
/ 09 марта 2010

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

Хорошо прочитано:
http://weblogs.asp.net/scottgu/archive/2006/09/30/Tip_2F00_Trick_3A00_-Guard-Against-SQL-Injection-Attacks.aspx

2 голосов
/ 09 марта 2010
string regexForDrop = @"^((%27)|'|(\-\-))\s*(d|%64|%44)(r|%72|%52)(o|%6F|%4F)(p|%70|%50).*$";

? или без $

1 голос
/ 09 марта 2010

Удалите «$» в конце вашего регулярного выражения. $ соответствует концу входной строки.

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