En primer lugar PHP fue creado pensado para la "comodidad" del programador web , que si bien bien ayudo a PHP en ser el lenguaje mas popular de la web, dio lugar a serios problemas de seguridad por busca de esta comodidad, la mas critica sin dudas fue y sigue siendo register_globals=On, esta opcion fue deshabilitada en la 4.2 y en la version 6 ya no existira, pero el daño ya estaba hecho y aun hoy, hay aplicaciones que NO funcionan, si los register_globals estan desactivados.
Los register_globals permiten que se creen variables de PHP en forma automatica producton de un REQUEST (GET,POST,COOKIE); el gran problema es por ejemplo que si un usuario quiere usar una variable del POST, esta pudo haber sido generado desde el URL y PHP ni enterado del falseo.
Indispensable desactivar esta opcion entonces si se quiere un minimo de seguridad.
Sin embargo aun HOY persisten algunos problemas que si bien no son tan criticos, fomentan; por desconocimiento, malas practicas de programacion y me refiero a las opciones :
error_reporting=E_ALL & ~E_NOTICE
magic_quotes_gpc = On
El error_reporting se recomienda usarlo tal como esta por defecto para entornos de produccion; sin embargo esto fomenta la mala practica de no enterarse de los NOTICE en el momento que se desarrolla el programa; el otro caso el INTERPRETE agrega automaticamente los carateres de escape \ a todo dato que venga del REQUEST, esto con el fin de evitar Inyecciones de SQL o XSS, sin embargo es responsabilidad del programador verificar los datos que recibe de un REQUEST, lo peor es que los magic quotes seran suprimidos en php6; ya me imagino cuantas aplicaciones seran vulnerables si usaran la nueva version de PHP, para clarificar estos dos conceptos
$variable = $_POST['variable']; // Seria vulnerable si magic_quotes_gpc=Off
$variable = addslashes($_POST['variable']); // Es totalmente seguro sin importar el valor de magic_quotes_gpc
$arr['indice'] = "valor";
echo $arr['Indice']; // con error_reporting por defecto no aparecera nada
// Cambiando error_reporting = E_ALL se mostrar un NOTICE de
// Undefined index
Obviamente sera mucho mas dificil de depurar con el error_reporting por defecto, pero algunos programadores, no hacen el cambio a E_ALL y pueden no advertir algunos errores, si ha esto le sumamos los register_globals, tendremos una aplicacion con potenciales programas de seguridad.
Sin embargo esto no significa que todas las aplicaciones esten programadas asi;
PHPNuke tenia muchos huecos de seguridad por los motivos explicados; pero drupal por ejemplo sugiere:
register_globals=Off
magic_quotes_gpc=Off
Para terminar, si queremos probar la seguridad y la correcta programacion de nuestra aplicacion:
error_reporting=E_ALL
register_globals=Off
magic_quotes_gpc=Off
Luego en produccion:
error_reporting=E_ALL & ~E_NOTICE
register_globals=Off
magic_quotes_gpc=Off
Saludos
On 9/8/06, Felix Manuel Arismendi Quispichuco <[EMAIL PROTECTED]> wrote:
Nuevamente un servidor de debian es vulnerado:
http://www.heise.de/english/newsticker/news/77854
Por cierto desde hace ya algún tiempo se viene observando problemas de
seguridad en php y aplicaciones desarrolladas con dicha herramienta.
Saludos.
FMAQ.
_______________________________________________
Lista de correo Linux-plug
Temática: Discusión general sobre Linux
Peruvian Linux User Group (http://www.linux.org.pe)
Participa suscribiéndote y escribiendo a: [email protected]
Para darte de alta, de baja o hacer ajustes a tu suscripción visita:
http://www.linux.org.pe/cgi-bin/mailman/listinfo/linux-plug
IMPORTANTE: Reglas y recomendaciones
http://www.linux.org.pe/listas/reglas.php
http://www.linux.org.pe/listas/comportamiento.php
http://www.linux.org.pe/listas/recomendaciones.php
--
Clever Flores
Email: [EMAIL PROTECTED]
Blog: http://cleverflores.blogspot.com
_______________________________________________ Lista de correo Linux-plug Temática: Discusión general sobre Linux Peruvian Linux User Group (http://www.linux.org.pe)
Participa suscribiéndote y escribiendo a: [email protected] Para darte de alta, de baja o hacer ajustes a tu suscripción visita: http://www.linux.org.pe/cgi-bin/mailman/listinfo/linux-plug IMPORTANTE: Reglas y recomendaciones http://www.linux.org.pe/listas/reglas.php http://www.linux.org.pe/listas/comportamiento.php http://www.linux.org.pe/listas/recomendaciones.php
