php - как проверить само регулярное выражение?

Мне нужно проверить ввод пользователя, который может быть регулярным выражением для фильтрации полей в его/ее собственном приложении, как я могу проверить действительность этого регулярного выражения?


person fabio    schedule 20.01.2011    source источник
comment
возможный дубликат stackoverflow.com/questions/172303/   -  person red-X    schedule 20.01.2011


Ответы (1)


Передайте его в фиктивный вызов preg_match() и посмотрите, вернет ли он false (указывая на ошибку)?

Примечание:: В зависимости от того, где вы собираетесь запускать это приложение, я бы поставил под сомнение решение разрешить пользователям делать это. Вы можете настроить себя на атаку типа «отказ в обслуживании»; все, что нужно сделать злоумышленнику, — это предоставить невероятно длинную и сложную строку регулярного выражения, и ваш сервер остановится.

person Oliver Charlesworth    schedule 20.01.2011
comment
Мне нравится ваша идея, я думал реализовать ее, но подумал, что это плохая практика, поэтому решил прийти сюда. Спасибо за совет - person fabio; 20.01.2011