Pequeña duda con ReDoS!

Iniciado por Shell Root, 19 Marzo 2010, 00:01 AM

0 Miembros y 1 Visitante están viendo este tema.

Shell Root

Bueno, mirando el documento que dejo WHK (Que por cierto, hago sino soñar con él, pero nada de sueño gays! =P), sobre Regular Expression Denial of Service (Que raro en Expresion tengo la E en mayuscula y la muestra en minuscula, que raro.). Continuando con mi pregunta, no logro entender bien como seria la denegacion de servicio, para que el retorno de los datos, sea el valor no filtrado por la expresion regular!.

Alguien que tenga un ejemplo de como seria esa denegación de servicio?

Saludos!
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Ca0s

Estaba esperando a que alguien que supiese mas contestase y asi resolvia mis dudas de paso XD
A ver, por lo que tengo entendido (vagamente y posiblemente con algun error):
El fallo se provoca porque el motor de expresiones regulares chequea de una forma "recursiva" (va buscando coincidencias caracter a caracter en todas las posibles combinaciones, no?). Entonces si se le mete una cadena muyyyy larga, el motor tarda demasiado en poder probar todas ellas (se elevan de forma exponencial, por una explicacion de SDC que vi por el foro un dia). Se le mete una cadena larga, que sea valida entera menos al final (ahí puede ser que me columpie?) y el motor empieza a currar. Luego si tarda demasiado, finalmente el script pasa de seguir probando y devuelve el valor como si hubiese pasado el test.
¿Estoy en lo correcto? Esa es la idea de ReDos que tenía después de leer la presentacion que puso WHK y los comentarios de la gente, pero de ahí no paso.
A ver si alguien que lo comprenda mejor nos puede aclarar un poco U.U