sql >> Database >  >> RDS >> Mysql

SQL-injectie in dynamische SQL voorkomen

Ahaha, dat is gewoon fantastisch!
Eindelijk begrijp ik wat bedoelt deze kerel onder zijn "dynamische sql". Geen wonder, want het is perfect vermomd en ziet eruit als gewone SQL op zowel het eerste als het tweede gezicht!

Hier komt het antwoord:

Doe het niet. Ooit.

Uw idee van "dynamische" SQL is in wezen verkeerd. Niemand doet het op deze manier.

Ik ken uw specifieke taak niet, maar uw oplossing is blijkbaar fout. En er is zeker een zinnige manier om het te doen. Volg gewoon deze eenvoudige regels:

  • verwijder meta_table
  • verwijder SQL-query's die zijn opgeslagen in de database
  • schrijf (of bouw) al uw query's in uw toepassing uit slechts twee bronnen:
    • hardcoded SQL, vooraf geschreven in uw code
    • voorbereide instructies voor alle variabele delen

en al uw SQL volkomen veilig hebben




  1. ORA - 00933 verwarring met inner join en as

  2. Gegevens opvragen door twee tabellen samen te voegen in twee databases op verschillende servers

  3. verbinding maken met een docker-compose mysql-container weigert toegang, maar docker met dezelfde afbeelding niet

  4. Mysql integer standaardwaarde 0