Bobby Tables: a guide to preventing SQL injection (Español)

0 Comments

¿por qué la escuela de Bobby perdió sus registros?

la escuela aparentemente almacena los nombres de sus estudiantes en una tabla llamada estudiantes. Cuando llega un nuevo estudiante, la escuela inserta su nombre en esta tabla. El código que realiza la inserción puede verse como sigue:

la primera línea crea una cadena que contiene una instrucción SQL INSERT. El contenido de la variable $studentName está pegado en la instrucción SQL., La segunda línea envía la instrucción SQL resultante a la base de datos. La trampa de este código es que los datos externos, en este caso el contenido de $studentName, se convierte en parte de la instrucción SQL.

primero veamos cómo se ve la instrucción SQL si insertamos un estudiante llamado John:

Esto hace exactamente lo que queremos: inserta John en la tabla Students.

ahora insertamos tablas Little Bobby, configurando $studentName a Robert"); DROP TABLE Students;--., La instrucción SQL se convierte en:

esto inserta Robert en la tabla Students. Sin embargo, la instrucción INSERT ahora va seguida de una instrucción DROP TABLE que elimina toda la tabla Students. Ouch!

cómo evitar las tablas de Bobby

solo hay una forma de evitar los ataques de las tablas de Bobby

  • no cree instrucciones SQL que incluyan datos externos.
  • Usar llamadas SQL parametrizadas.

Eso es todo. No intentes escapar de los caracteres inválidos. No intentes hacerlo tú mismo. Aprenda a usar instrucciones parametrizadas. Siempre, cada vez.,

La tira tiene una cosa crucialmente equivocada. La respuesta no es «desinfectar sus entradas de base de datos» usted mismo. Es propenso al error.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *