SQL -injeksjon hacks utføres på servere som ikke har den nødvendige sikker programmering . Disse er vanligvis oppnås på servere der web - side kode bruker inline SQL, noe som betyr at søket er i web - side kode i stedet plassert i en lagret prosedyre . Å vite hvordan en SQL-injeksjon hack fungerer hjelper eiere beskytte kundedata og sikre nettsider. The Form Variabel
Det første trinnet i å forstå hvordan en SQL- injeksjon angrep er skapt er ved å kopiere problemet . SQL-injeksjon angrep er oppnådd gjennom skjema variabler i en HTML-side . Opprette form gjør at webmaster å simulere og teste sikkerheten på webserveren . Nedenfor er et eksempel på en form objekt brukes til å opprette en SQL-injeksjon angrep.
Selv om dette er en enkel form tekstboks , det er alt som trengs for å oppnå en SQL- injeksjon. Hacker code
Når SQL-setninger er gjort , bygger programmet SQL-kode som sendes til databasen . Når en streng er sendt til databasen , ser koden noe som teksten under : en
select * from MyTable hvor name = ' myVariableFromtheForm '
hake betyr slutten på den SQL-kode , og det er her hackere målet. Når en tekstboks som den som ble laget i punkt 1 er brukt til å bygge en streng , kan en hacker inn noe sånt som følgende inn i tekstboksen : en
"eller 1 = 1 , -
kan se ut som vrøvl , men faktisk injiserer det kode i databasen som drives av serveren . Når " myVariableFromtheForm " erstattes av koden ovenfor , ser uttalelsen drevet av serveren faktisk ut som følgende : en
select * from MyTable hvor name = ' "eller 1 = 1 - ' < p > den " - " er kommentarer kode for SQL -server, slik at den siste avslutning flåtten blir ignorert . Strengen er tom og hackeren injiserer koden " 1 = 1 " i setningen . Hva det gjør er tilbake hver rad fra tabellen til hackeren . Dette er hvordan en skruppelløs person stjeler privat informasjon fra databaseservere . Festing problemet
Den beste måten å løse problemet på koden som er utsatt for en SQL- injeksjon hack er å bruke "Erstatt "-funksjonen i hvert tilfelle hvor teksten er lagt inn fra brukerne . For eksempel, i ASP-kode , erstatter følgende kodelinje den eneste hake med to. Når en SQL Server kjører kode med to markeringer , leser det dem som en bokstavelig og strengen er ikke avsluttet
string.Replace ( " ' ", " '' "); .
koden ovenfor erstatter alle forekomster av én hake med to, fjerner sårbarheten i en SQL- injeksjon angrep .