Mysql
 sql >> Database >  >> RDS >> Mysql

Prevenire SQL injection nell'SQL dinamico

Ahahah, è semplicemente fantastico!
Finalmente sono riuscito a capire cosa questo tizio significa sotto il suo "sql dinamico". Non c'è da stupirsi perché è perfettamente mascherato e sembra un normale SQL sia al primo che al secondo sguardo!

Ecco la risposta:

Non farlo. Mai.

La tua idea di SQL "dinamico" è essenzialmente sbagliata. Nessuno lo fa in questo modo.

Non conosco il tuo compito in particolare, ma la tua soluzione è apparentemente errata. E c'è sicuramente un modo sano di farlo. Basta seguire queste semplici regole:

  • sbarazzati di meta_table
  • elimina le query SQL archiviate nel database
  • scrivi (o compila) tutte le tue query nella tua applicazione solo da due fonti:
    • SQL hardcoded, pre-scritto nel tuo codice
    • dichiarazioni preparate per tutte le parti variabili

e avere tutto il tuo SQL perfettamente al sicuro