sql >> Databasteknik >  >> RDS >> Mysql

Förhindrar SQL-injektion i dynamisk SQL

Ahahah, det är bara fantastiskt!
Äntligen lyckades jag förstå vad betyder den här killen under hans "dynamiska sql". Inte konstigt eftersom det är perfekt förklädd och ser ut som vanlig SQL vid både första och andra anblick!

Här kommer svaret:

Gör inte det. Någonsin.

Din uppfattning om "dynamisk" SQL är i grunden felaktig. Ingen gör på det här sättet.

Jag vet inte din specifika uppgift men din lösning är tydligen fel. Och det finns säkert ett vettigt sätt att göra det på. Följ bara dessa enkla regler:

  • bli av med meta_table
  • bli av med SQL-frågor lagrade i databasen
  • skriv (eller bygg) alla dina frågor i din applikation endast från två källor:
    • hårdkodad SQL, förskriven i din kod
    • förberedda satser för alla variabla delar

och ha all din SQL helt säker




  1. Uppdatera SQL Server-tabeller med färre avbrott med hjälp av partitionsväxling

  2. Hur sanerar jag data som tas emot från ett textområde på rätt sätt när jag matar ut det tillbaka till textområdet?

  3. generera tomma rader även om de är tomma mellan 2 datum

  4. PDO::FETCH_CLASS med flera klasser