Безопасно ли RegEx от пользовательского ввода?
-
22-08-2019 - |
Вопрос
Я работаю над приложением, которое должно принимать RegEx от пользователя. Для этого я использую следующий код:
Regex user_searchPattern = new Regex(this.userInput_regEx.Text);
Безопасно ли это делать?
Есть ли необходимость в очистке пользовательского ввода, и если да, то как?
Решение
Вы можете получить сообщение об ошибке, если регулярное выражение имеет неверный синтаксис, или оно может занимать экспоненциальное количество времени и пространства при обработке, если так называемый патологическое регулярное выражение проверяется на некоторой конкретной строке.
Другие советы
Пользовательский ввод – это всегда зло.Что вы имеете в виду под словом «безопасно»?Может ли он содержать ошибки, из-за которых ваш код выдаст исключение или по каким-либо другим причинам выйдет из строя?Да, конечно, может, поэтому, конечно, вы должны быть к этому готовы.