SQL injektion hacks udføres på servere , der ikke har den nødvendige sikker programmering. Disse er normalt opnås på servere , hvor web - side kode bruger inline SQL, hvilket betyder, at forespørgslen er i web - side kode, snarere end placeret i en lagret procedure . Vide, hvordan en SQL-injektion hack værker hjælper webstedsejere beskytte kundedata og sikre websider. Formular Variable
Det første skridt i at forstå, hvordan en SQL injektion angreb er skabt , er ved at replikere problemet. SQL-injektion angreb er opnået gennem formvariabler i en HTML-side . Oprettelse af formular gør det muligt for webmaster at simulere og teste sikkerheden på webserveren. Nedenfor er et eksempel på en form som bruges til at oprette en SQL-injektion angreb.
Selv om dette er en simpel form tekstboks det er alt, hvad der er nødvendigt for at gennemføre en SQL-injektion . Hacker Code
Når SQL-sætninger er foretaget, programmet bygger SQL-kode , der er sendt til databasen . Når en streng er sendt til databasen , koden ser ud som nedenstående tekst : Hej
select * from MinTabel hvor navn = ' myVariableFromtheForm '
flueben betyder enden af SQL-kode , og det er her hackere målet. Når en tekstboks som den skabes i § 1 bruges til at bygge en streng, kan en hacker indtaste noget i retning af følgende i tekstfeltet : Hej
' eller 1 = 1; -
kunne ligne volapyk , men i virkeligheden er det sprøjter kode i den database, der drives af serveren. Når " myVariableFromtheForm " erstattes af ovenstående kode , erklæringen drives af serveren faktisk ser ud som følgende : Hej
select * from MinTabel hvor navn = ' eller 1 = 1 - ' < p > den " - " er den kommentar koden for SQL -server, så den sidste afslutning kryds ignoreres. Snoren er tom, og hackeren tilfører koden " 1 = 1 " i opgørelsen. Hvad det gør, er tilbage hver p fra tabellen til hacker. Dette er, hvordan en skruppelløs person, stjæler private oplysninger fra databaseservere. Montering af Problem
Den bedste måde at løse problemet på kode, der er modtagelige for en SQL- injektion hack er at bruge " Erstat "-funktionen i hvert tilfælde, hvor teksten er indtastet fra brugerne. For eksempel, i ASP-kode følgende linje kode erstatter enkelt flueben med to. Når en SQL Server kører kode med to skalastregerne , læser dem som en bogstavelig og strengen ikke opsiges
string.Replace (" ", " '' ") .
ovenstående kode erstatter alle forekomster af et enkelt flueben med to, fjerner sårbarheden af en SQL injektion angreb.