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

Forebyggelse af SQL-injektion i dynamisk SQL

Ahahah, det er bare fantastisk!
Endelig formåede jeg at forstå hvad betyder denne fyr under hans "dynamiske sql". Ikke så mærkeligt, da det er perfekt forklædt og ligner almindelig SQL ved både første og andet øjekast!

Her kommer svaret:

Lad være med at gøre det. Nogensinde.

Din idé om "dynamisk" SQL er grundlæggende forkert. Ingen gør det på denne måde.

Jeg kender ikke din særlige opgave, men din løsning er tilsyneladende forkert. Og der er helt sikkert en fornuftig måde at gøre det på. Bare følg disse enkle regler:

  • slip af meta_table
  • slip af med SQL-forespørgsler gemt i databasen
  • skriv (eller byg) alle dine forespørgsler i din applikation kun fra to kilder:
    • hardkodet SQL, forudskrevet i din kode
    • forberedte udsagn for alle variable dele

og have al din SQL helt sikker




  1. Kan MySQL bruge indekser, når der er ELLER mellem betingelser?

  2. MySQL understøtter ikke enkeltlinjekommentarer her. Hvad ville være årsagen?

  3. opsætning af en database til sporing af, hvilke brugere der har klikket på hvilke links?

  4. Mysql-opdateringskolonne ved første forekomst af hvert brugernavn