Comments 2
Существуют ли инструменты автоматической проверки регулярок? Чтобы, например, скормил регулярку, и получил вердикт - безопасная, уязвимая или что-то ещë.
Ленивый от жадного отличается только тем, что переберёт все неудачные варианты в противоположном порядке.
Тот же пример "(a+?)+?$" для строки "aaaa!"
(a) не $
(a)(a) не $
(a)(a)(a) не $
(a)(a)(a)(a) не $
(a)(a)(aa) не $
(a)(aa) не $
(a)(aa)(a) не $
(a)(aaa) не $
(aa) не $
(aa)(a) не $
(aa)(a)(a) не $
(aa)(aa) не $
(aaa) не $
(aaa)(a) не $
(aaaa) не $
не шмогла!
Если смешать жадный и ленивый - "(a+)+?$" или "(a+?)+$" - ну, получим всё то же самое, но ещё в другом порядке.
Потому что суть-то не меняется. Парсеру надо перебрать все возможные разбиения, чтобы убедиться, что ни одно не подошло.
Sign up to leave a comment.
Как одна кривая регулярка может «положить» ваш сервер: разбираем уязвимость ReDoS