
|
|
|
01.- Siempre hay que validar los datos que están bajo el control de los usuarios. Hay que tener en cuenta que un usuario malicioso puede realizar una conexión HTTP válida con un sencillo "telnet" e introducir los datos que desee y en el formato que él quiera. Nunca se debe pasar al sistema ningún dato que provenga de una entrada de usuario sin ser validada antes hay que sanitizar los datos. Usar las funciones htmlspecialchars() - htmlentities() o strip_tags() para limpiar el HTML y Javascript así evitaras en gran medida ataques XSS. Link sugerido: http://www.xombra.com/go_articulo.php?nota=67 02.- Usar la función mysql_real_escape_string() ( http://ve2.php.net/manual/es/function.mysql-real-escape-string.php ) para el tratamiento de datos en la base de datos. De esta forma se minimiza un posible ataque por sql injection 03.- Usar siempre $_POST - $_GET- $_COOKIE para capturar los datos que provengan de otras páginas de nustra aplicación. Debemos verificar que register_globals este en Off jamás usar $_REQUEST a menos que la variable que se este usando no sea critica y no afecte al sistema. 04. Usar ficheros .htaccess ( Link sugerido: http://www.askapache.com/htaccess/apache-htaccess.html ) 05.- Evitar en lo posible colocar permisos 777 a las carpetas, pero si las necesitas protegelas con .htaccess de esta forma: php_flag engine off colocando ese fichero .htaccess en la carpeta. 06.- Evitar el uso de mysql_error(), es recomendable durante la fase de desarrollo pero una vez culminada la aplicación (producción) suprimir su uso, debido a que esta función envia el número de error generado por una consulta sql. Evitar que PHP muestre los errores, usando simplemente un archivo .htaccess y colocando la directiva: php_flag display_errors Off Recuerde su aplicación es la que debe indicar el error, envie un mensaje generico sobre el problema pero no de mayores detalles. De ser posible haga que el sistema le envie un email notificando el problema generado, de esa forma podra depurar la aplicación con rápidez. 07.- Aún cuando PHP es un lenguaje permisivo es buena costumbre definir siempre las variables antes de usarlas settype(). 08.- Verificar que safe_mode este en ON de esta forma se comprueba que los archivos sobre los que se trabaja desde otro archivo pertenecen al mismo propietario, evitando de esta forma que otra aplicación obtenga datos sin autorización. 09.- Almacenar las claves en formato md5() o sha1() 10.- Utiliza el = = = para verificar valores de entrada (identidad de datos y de tipos). " Importantisimo" 11. Suprimir los linebreaks (BR, P y BLOCKQUOTE) de los headers entrantes para prevenir la terminación y la inyección de código malicioso. 12.- Usar addslashes() para minimizar el riesgo de SQL Injection o un atque XSS. 13.- Los usuarios o visitantes de su sitio no deben poder ver o entrar en los directorios de su apliación, coloque un index.html con un contenido "mensaje" que indique que no esta e un área permitida y lo redirecciona al index principal de su aplicación. 14.- Si necesita usar tener archivos .inc (haciendo referencia a inlcudes) o .ini / .cfg (haciendo referencia a archivos de configuración) coloquele final .php ejemplo: config.ini.php ya que algunos servidores no procesan bien ese tipo de ficheros y pueden mostrar su contenido.
Algunas aplicaciones recomendadas: Ratproxy
Autor: Xombra |
| Fecha: 27-08-2008 Políticas de uso: Ver Politícas |
| |
|
|