Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Prevenindo SQL Injection em SQL dinâmico


Ahahah, isso é simplesmente fantástico!
Finalmente consegui entender o que esse cara significa sob seu "sql dinâmico". Não é de admirar, pois está perfeitamente disfarçado e parece um SQL comum à primeira e à segunda vista!

Aqui vai a resposta:

Não faça isso. Nunca.


Sua ideia de SQL "dinâmico" está essencialmente errada. Ninguém faz assim.

Não conheço sua tarefa específica, mas sua solução aparentemente está errada. E certamente há uma maneira sã de fazê-lo. Basta seguir estas regras simples:
  • livrar-se da meta_table
  • livre-se de consultas SQL armazenadas no banco de dados
  • escreva (ou construa) todas as suas consultas em seu aplicativo de apenas duas fontes:
    • SQL codificado permanentemente, pré-escrito em seu código
    • instruções preparadas para todas as partes variáveis

e tenha todo o seu SQL perfeitamente seguro