Defensa contra ataques de inyección de SQL

En primer lugar, permítanme decir que esto no es un tutorial, este es un artículo destinado a darle una visión general con unas pocas opciones arrojadas.

Debe proteger sus bases de datos relacionales (como MySQL) del temido ataque de inyección de SQL. Estos ataques son conducidos por nerds malvados, intentando insertar código SQL dañino en los campos de formulario HTML (y las cadenas de consulta también) para hacer cosas como... eliminar tablas de base de datos o incluso borrar su base de datos por completo!

¡Estos ataques son muy reales! Siempre pensamos que nunca nos ocurrirá a nosotros... hasta que nos pasa.


Afortunadamente, hay algunos pasos centrados en el código que puede tomar para protegerse de estos ataques de inyección de SQL:

  • Utilice esta función: mysql_real_escape_string () y envuelva sus variables de entrada con ella.
  • Utilice un sistema de correlación objeto-relacional (orm) para evitar básicamente escribir SQL para empezar. He oído que el mejor para PHP'rs hoy es Doctrine.
  • Utilizar una declaración preparada que básicamente procesa todo y lo limpia para usted. PHP tiene la clase PDOStatement para esto.


Otra opción (que me gusta usar), es simplemente eliminar la base de datos de cualquier posible interacción externa. A veces esto no es posible pero cuando lo es, funciona bien.

También puedes crear tus propias funciones de limpiezas de todas las variables sucias (por decirlo así), y cada variable que nos llega ya sea desde un formulario o de cualquier otra parte, siempre pasarla por esta función, así te aseguras que todas las variables con las que trabajes estarán libres de cualquier ataque.

Comentarios (0)

¿Quieres comentar?