Достаточно ли регулярных выражений, чтобы остановить инъекционные атаки? - PullRequest
3 голосов
/ 27 июля 2011

У меня есть скрипт, который обрабатывает пользовательский ввод и, прежде чем продолжить взаимодействие с базой данных, проверяет ввод с помощью регулярных выражений.Мой единственный вопрос: достаточно ли регулярных выражений, чтобы отсеять инъекционные атаки или мне все еще нужно применить mysql_real_escape_string()?

Ответы [ 4 ]

2 голосов
/ 27 июля 2011

Это действительно зависит от того, насколько «хорошо» выражение; как в "ты покрыл все свои базы?" Это не помешает пройти через mysql_real_escape_string, чтобы быть в безопасности. Если вы несколько раз используете это в своем скрипте, это не повлияет на производительность.

1 голос
/ 27 июля 2011

Если ваше регулярное выражение достаточно хорошо, тогда да, однако, зачем рисковать?

1 голос
/ 27 июля 2011

Это если регулярное выражение ^$. Для всех других входов это зависит от того, позволяет ли регулярное выражение экранировать символы. Поскольку они зависят от базы данных и настроек соединения, вам действительно следует использовать подготовленные операторы или, если это не вариант, mysql_real_escape_string каждый раз.

0 голосов
/ 27 июля 2011

Если бы у вас не было удивительного выражения в RegEx, я лично не поверил бы, что оно завершено.

Всегда ошибка на стороне слишком большой защиты, а не слишком маленькой.Включить звонок на mysql_real_escape_string.

...