Это шаблон регулярного выражения, предлагаемый для проверки электронной почты спецификацией W3C HTML :
^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$
SonarQube помечает его как «уязвимый для атаки типа« отказ в обслуживании »(ReDOS)».Я думаю, что это ложный положительный результат, но я не эксперт в этой области, и я могу что-то упустить.
Я считаю, что Сонар считает, что он может быть подвержен атакам ReDoS из-за повторяющихся вложений - [a-zA-Z0-9-]{0,61}
содержится вза группой следует звездочка.Но, тем не менее, я думаю, что когда механизм регулярных выражений откатывает это выражение, оно может быстро разрешить его, так как после этого ожидается либо точка, либо конец строки.Верны ли мои рассуждения?