Es RegEx de entrada del usuario a salvo?
-
22-08-2019 - |
Pregunta
Estoy trabajando en una aplicación que tiene que aceptar una expresión regular por parte del usuario, para hacer así que estoy usando el siguiente código:
Regex user_searchPattern = new Regex(this.userInput_regEx.Text);
está haciendo esto seguro?
¿Hay una necesidad de desinfectar la entrada del usuario, y si es así, ¿cómo?
Solución
Es posible obtener un error si la expresión regular tiene una sintaxis no válida o puede consumir una cantidad exponencial de tiempo y espacio cuando se procesa si lo que se denomina expresión regular patológica es probado en alguna cadena en particular .
Otros consejos
La entrada del usuario es siempre el mal. ¿Qué quiere decir con "seguro". Puede contener errores que harán que su código de lanzar una excepción o un error de alguna otra manera? Sí, sin duda puede, por lo que debe estar preparado para que, por supuesto.