Bobby Tabeller: A guide for å hindre SQL-injeksjon

0 Comments

Hvorfor gjorde Bobby»s skole miste sine poster?

skolen tilsynelatende lagrer navnene på elevene sine i en tabell kalt Elevene. Når en ny elev kommer, skolen setter inn hans/hennes navn inn i denne tabellen. Koden gjør innsetting kan se ut som følger:

Den første linjen skaper en streng som inneholder en SQL INSERT-setningen. Innholdet av $studentName variabel er limt inn i SQL-setningen., Den andre linjen sender den resulterende SQL-setningen til databasen. Fallgruven av denne koden er at utenfor data, i dette tilfellet innholdet av $studentName, blir en del av SQL-setningen.

Først la»s se hva SQL-setningen ser ut som om vi sett en student ved navn John:

Dette gjør akkurat det vi vil ha: her setter John inn Studenter-tabellen.

Nå har vi sett lite Bobby Tabeller, ved å sette $studentName til Robert"); DROP TABLE Students;--., SQL-setningen blir:

Dette setter Robert inn Studenter-tabellen. Men, SETT uttalelse er nå etterfulgt av en DROP TABLE statement som fjerner hele Studenter-tabellen. Ouch!

Hvordan for å unngå Bobby Tabeller

Det er bare en måte å unngå Bobby Tabeller angrep

  • ikke lage SQL-setninger som inkluderer utenfor data.
  • Bruk parameterized SQL-kall.

Det»er det. Don»t prøver å flykte ugyldige tegn. Don»t prøve å gjøre det selv. Lær hvordan du bruker parameterized uttalelser. Alltid, hver eneste gang.,

The strip får en ting som er avgjørende feil. Svaret er ikke å «rense din database innganger» deg selv. Det er utsatt for feil.


Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *