martes 3 de febrero de 2009

Los 25 errores de programación más peligrosos


CWE(1) menciona en su sitio web los 25 errores de programación más peligrosos. Algunos de ellos...


  • Inyección de código SQL.

  • Cross-site scriptiong.

  • Inyección de comandos del sistema operativo.

  • Envío de información confidencial sin encriptación.

  • Race condition: dos o más recursos pelean por el mismo recurso.

  • Rutas de búsquedas no restringidas.

  • Inicialización inapropiada.

  • Descarga de código sin pruebas de integridad.

  • Passwords "quemados" en el código.

  • Restringir operaciones dentro de un buffer de memoria.

  • Uso de un algoritmo de encriptación "roto" o riesgoso.

Los sitios Webs son especialmente inmunes a inyecciones de código y de SQL.


Mis consejos:


  • NO confies nunca en las "entradas" de un browser (lo que venga en un POST o GET) ni en lo que venga en una Cookie: rechaza todo lo que parezca código y sólo acepta lo que esperas aceptar. Usa expresiones regulares u otros medios para garantizar que el usuario entró lo que debería.

  • Del lado del servidor, haz un log paranónico, incluyendo fecha, hora, IP y actividad y haz que te envíe un mail si detecta cosas extrañas....

  • Si usas PHP y mySQL usa mysql_escape_string() antes de crear sentencias SQL al vuelo.

  • Rechaza cualquier petición que venga de una lista negra editable.

  • En el cliente, haz un ID por usuario una vez que alguien se autentifica con éxito y almacénalo del lado del servidor también. Cualquier operación posterior los dos IDs deben de coincidir.

-------------------------------------------


Link original de los 25 errores, con su explicación y lista completa aqui. Vale la pena la lectura.



Saludos!




---------------------------

(1) = CWE es una inciativa del departamento de seguridad interna de Estados Unidos para el aseguramiento de calidad.

0 comentarios: