-
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.
-
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 PHP > 5.1
-
Utiliza comprobación md5 en valores y sessionid serializados para validar su integridad.
-
Utiliza el === para verificar valores de entrada (identidad de datos y de tipos). Utiliza está configuración,
-
Cambia algunos valores de configuracion de php
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- Cambia algunos valores de php.ini
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.
SQL Injection, PHP y Bases de Datos
Cómo se produce una inyección SQL en PHP, por qué cuesta tanto depurarla después, y las prácticas que la evitan desde el principio.
Configuración de Lighttpd sobre Linux con PHP5, Ruby on Rails y SSL
Migrar un servidor de Apache a Lighttpd con PHP5, Ruby on Rails y SSL conviviendo en la misma máquina, y los puntos donde duele.
Hardening SSL encryption in an nginx server
POODLE killed SSLv3 for good. The nginx configuration that follows from that — protocols, cipher suite, forward secrecy, OCSP stapling and HSTS — and the two lines that matter more than the cipher list everyone copies.