- Utiliza los parámetros de PDO o mysql_real_escape_string sobre valores SQL para evitar la inyección del SQL.
- 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*/ } - Usa escapeshellarg/escapeshellcmd cuando llames comandos exec para así evitar injección de comandos.
- 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
- Utiliza comprobación md5 en valores y sessionid serializados para validar su integridad.
- 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
- Para cambios de sesión usa session_regenerate_id.
- Usa secure sockets SSL para trasacciones comerciales.
7. Utiliza el === para verificar valores de entrada (identidad de datos y de tipos).
Me parece un muy buen articulo, quizas falta código pero es cuestión de investigar por cuenta del interesado. GRacias por los tips.
Write on July 23rd, 2008 at 3:36 pm
Gracias por el comentario ramlig,
precisamente este post es para abrir un poco los ojos y despertar un poco la curiosidad.
Write on August 6th, 2008 at 12:31 pm