¿Prevención de ataques de inyección SQL cambiando con frecuencia los nombres de las tablas?

1

Entiendo el proceso básico de ataque de inyección SQL. ¡Me dijeron que una forma de prevenir un ataque de este tipo es cambiando frecuentemente el nombre de la tabla! ¿Es eso posible? Si es así, ¿puede alguien proporcionarme un enlace para leer más sobre esto porque no pude encontrar una explicación al respecto en la web?

    
pregunta Katherine 12.10.2016 - 23:57
fuente

2 respuestas

4

Cambiar el nombre de la tabla periódicamente hará que la inyección de SQL sea un poco más difícil (ya no se puede registrar a ciegas un nombre de usuario de Robert'); DROP TABLE Students;-- para causar estragos). Sin embargo, existen técnicas de inyección de SQL para averiguar los nombres de las tablas, que pueden pasar por alto sus defensas.

La forma correcta de evitar la inyección de SQL es utilizar consultas parametrizadas. Esto detiene completamente la inyección, y es mucho menos complicado que volver a escribir sus consultas cada vez que cambie los nombres de sus tablas.

    
respondido por el Mark 13.10.2016 - 00:05
fuente
1

No.

Con la mayoría de los DBMS, puede acceder a la información de la tabla y la base de datos a través de information_schema , por lo que ocultar los nombres de las tablas no proporciona ninguna beneficio. Incluso con aquellos DBMS que no proporcionan esta información, los nombres de las tablas pueden ser forzados de forma brutal y otros ataques también pueden ser posibles (escribir en archivos, ejecutar comandos del sistema, omitir la autenticación, etc.).

La única defensa adecuada contra la inyección SQL son declaraciones preparadas. Los permisos adecuados, así como el filtrado de entrada razonable, son útiles como defensa en profundidad.

Pero incluso como defensa en profundidad, cambiar los nombres de las tablas con frecuencia no parece ser un enfoque razonable, ya que es demasiado problema con muy poco o ningún beneficio. A lo sumo, puede considerar el uso de nombres de tabla no predeterminados o algún prefijo de tabla para evitar posiblemente una explotación automatizada de vulnerabilidades conocidas (pero incluso eso es una posibilidad remota y realmente no vale la pena).

    
respondido por el tim 13.10.2016 - 00:27
fuente

Lea otras preguntas en las etiquetas