Tips de seguridad en PHP
30 November, 2007 | Comentario (2)
1. Utiliza los parámetros de PDO o mysql_real_escape_string sobre valores SQL para evitar la inyección del SQL.
2. Utiliza htmlspecialchars/htmlentities/strip_tags para escapar HTML y Javascript así evitaras ataques XSS.
3. Utiliza sesiones y asegura los sockets para prevenir que roben la sesión además almacena un símbolo especial md5 ej: md5(uniqueid(rand(),time)) en la sesión y comprobarla con un campo oculto en método POST y así prevenir que otro usuario ingrese.
Ejemplo:
if($_SESSION [’seguridadMd5′]==$_POST[’campoculto’]) {
/*Sesión segura*/
}
4. Usa escapeshellarg/escapeshellcmd cuando llames comandos exec para así evitar injección de comandos.
5. Quita los linebreaks (BR, P y BLOCKQUOTE tags) de headers entrantes para prevenir la terminación y la inyección de códigos. Fixed >PHP5.1
6. Utiliza comprobación md5 en valores y sessionid serializados para validar su integridad.
7. Utiliza el === para verificar valores de entrada (identidad de datos y de tipos).
8. Utiliza está configuración,
* ini_set(”display_errors”,false);
* ini_set(”log_errors”,true);
* ini_set(”error_log”,”ruta/php.log”);
* ini_set(”session.save_path”,”ruta/www”); o “mm” session module o store en sqllite db
* php.ini expose_php=off
* php.ini register_globals=off
* Apache servertokens=prod
9. Para cambios de sesión usa session_regenerate_id.
10. Usa secure sockets SSL para trasacciones comerciales.

Muchas veces cuando estás trabajando con aplicaciones web o standalone que trabajan contra Bases de datos te ves en la necesidad de hacer un volcado de tu BD para hacer un backup o para migrar la aplicación. El problema es que en Mysql y con columnas con tipos de datos text o varchar que continen datos con caracteres especiales como á, ó, ç o ñ, letras acentuadas, etc. al hacer el volcado descubres que aparecen simbolos extraños. Por ejemplo






RSS de Entradas