Inicio arrow Recursos Técnicos arrow Mejora de la Seguridad Codificando por Contrapunto
martes, 14 de octubre de 2008
 
 
Mejora de la Seguridad Codificando por Contrapunto PDF Imprimir E-Mail
{mosgoogle left}

1. No mantenga activado el register_global. Todas las discusiones sobre seguridad PHP se posicionan en contra del uso de register_global. Por tanto, no debería permitir que las variables globales se agrupen con valores de la petición. Obtenga cada valor deseado, explícitamente de uno de los PHP súper globales: $_REQUEST, $_POST o $_GET. Se recomienda preferir $_POST y $_GET sobre $_REQUEST.

2. Revise todas las peticiones, especialmente valores string. Tenga en cuenta que desde la versión Mambo 4.5.3 la rutina mosGetParam forzará a que el valor sea un número entero si el valor por defecto es numérico (puede pasar por alto esto, si es necesario). En particular, no envíe strings no verificados a sentencias SQL. Como mínimo use el método $database->getEscaped() para mejorarlos.

3. No deje que su código funcione en un ambiente global, excepto cuando sea necesario. Enciérrelo lo máximo posible dentro de funciones. O incluso mejor en clases y sus métodos.

4. Evite confiar en variables globales cuando sea posible. Una clase singleton es un modo mejor para agrupar valores usados ampliamente. En Mambo 4.6 puede obtener el objeto singleton mosMainFrame con la sentencia mosMainFrame::getInstance. Desafortunadamente esto no funcionará con las primeras versiones de Mambo o con Joomla!. Una vez obtenido el objeto mosMainFrame, use el método $mainframe->getCfg($name) para obtener variables de configuración estándar como mosConfig_absolute_path en preferencia a usar globales. En Mambo 4.6 existe una revisión de este proceso que proporciona seguridad adicional.

5. No asuma que una petición viene de donde espera. Sólo porque un usuario común invoque un mecanismo desde un formulario particular, no asuma que un hacker hará lo mismo. La entrada podría estar totalmente manipulada (si se trata de una string de la petición o de variables del formulario). Necesita aplicar revisiones de seguridad para cada proceso, para asegurar que el usuario realmente está implicado con las acciones en cuestión.

6. Asegúrese que cada uno y todos los archivos .php tengan esto al inicio:

Código PHP:

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

 Texto original: "Writing for security for counterpoint's", por Mambo Guru.
 Traducido por: Equipo de Traducción y Documentación de Joomla! Spanish.

 
< Anterior