SQL injektion hackar utförs på servrar som inte har den nödvändiga säker programmering . Dessa är vanligtvis åstadkoms på servrar där webbsida kod använder inline SQL , vilket innebär att frågan är i web - sidan kod i stället ligger i en lagrad procedur . Att veta hur en SQL- injektion hacka fungerar hjälper webbplatsägare skydda kunduppgifter och säkra webbsidor . Form Variabel
Det första steget i att förstå hur en SQL- injektion attack skapas är genom att återskapa problemet . SQL injection attacker åstadkoms genom bildar variabler i en HTML- sida . Skapa formen gör att webmaster att simulera och testa säkerheten på webbservern . Nedan är ett exempel på en form -objekt som används för att skapa en SQL- injektion attack .
Även om detta är en enkel form textruta , det är allt som behövs för att åstadkomma en SQL- injektion . Hacker Code
När SQL-satser görs , bygger programmet SQL -kod som skickas till databasen . När en sträng skickas till databasen , ser koden ut ungefär som nedanstående text :
select * from mytable där namn = ' myVariableFromtheForm '
bock innebär slutet av SQL-kod , och det är där hackare mål . När en textruta som den skapades i avsnitt 1 används för att bygga en sträng , kan en hacker skriva något i stil med följande i textrutan :
' eller 1 = 1 , - AktieTorget
kan se ut som rappakalja , men i själva verket injicerar kod i databasen som drivs av servern . När " myVariableFromtheForm " ersättas med koden ovan , ser uttalandet drivs av servern verkligen som följande :
välj * från mytable där namn = ' ' eller 1 = 1 - '
den " - " är kommentarer kod för SQL -server , så den sista avslutande fästingen ignoreras . Strängen är tom och hackaren sprutar koden " 1 = 1 " i ett uttalande . Vad det gör är att returnera alla rader från tabellen till hacker . Detta är hur en skrupelfri person som stjäl privat information från databasservrar . Av problem
Det bästa sättet att åtgärda problemet i koden som är mottagliga för en SQL- injektion hack är att använda " ersätt"-funktion i varje fall där text skrivs in från användarna . Till exempel , i ASP-kod , ersätter följande kodrad den enda bock med två . När en SQL Server kör kod med två skalstreck , läser det dem som en bokstavlig och strängen avslutas inte
string.Replace ( " ' " , " '' " ) , .
koden ovan ersätter alla förekomster av en enda markering med två , ta bort sårbarhet en SQL-injektion attack .