sql >> Base de Datos >  >> RDS >> Mysql

Prevención de inyección de SQL en SQL dinámico

Ahahah, ¡eso es simplemente fantástico!
Finalmente logré entender qué ¿Este tipo quiere decir bajo su "sql dinámico". ¡No es de extrañar, ya que está perfectamente disfrazado y se parece a un SQL ordinario tanto a primera como a segunda vista!

Aquí va la respuesta:

No lo hagas. Nunca.

Su idea de SQL "dinámico" es esencialmente incorrecta. Nadie lo hace así.

No conozco tu tarea en particular, pero aparentemente tu solución es incorrecta. Y seguramente hay una forma sensata de hacerlo. Solo sigue estas sencillas reglas:

  • deshágase de meta_table
  • deshágase de las consultas SQL almacenadas en la base de datos
  • escriba (o cree) todas sus consultas en su aplicación solo desde dos fuentes:
    • SQL codificado, escrito previamente en su código
    • declaraciones preparadas para todas las partes variables

y ten todo tu SQL perfectamente seguro