Archivo
miércoles, 5 de enero de 2011
PHP 666, el numero maligno
Se suele asociar el numero 666 como un numero diabólico, luego se descubre q el verdadero numero de la bestia es el 616 y se acarrea este error debido a una mala traducción, pero bueno, no estamos tratando este numero precisamente, sino del 2.2250738585072011e-308.
Resulta que este numero provoca un bucle infinito en algunas versiones de PHP, propiciando asi un entorno para un ataque DoS, y al parecer no solo depende de la versión del interprete sino también de la arquitectura q se este utilizando, siendo también independiente del S.O. (afecta tanto Windows, Linux, FreeBSD, etc)
Este es un pequeño PoC q nos deja el amigo Rick Regan, q provoca este bucle ...
<?php $d = '2.2250738585072011e-308'; echo $d + 0; ?>
Veamos 2 manera de mitigar esto...
* Agregar el siguiente código al comienzo del programas
if (strpos(str_replace(‘.’, ”, serialize($GLOBALS)), ’22250738585072011′)!==false) die();
* Habilitar el flag "--ffloat-store" en CFLAGS
PD:\ Perdon x la imagen ya q el articulo no tiene nada q ver con mod_perl, solo se refiere a php XD
Para mas información ...
http://www.exploringbinary.com/php-hangs-on-numeric-value-2-2250738585072011e-308/
http://news.ycombinator.com/item?id=2066352
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario