? En SQL attack , eller SQL injection attack , innebär införande , eller injektion av skadlig kod i värden eller variabler , som en användare ingångar i ett datorprogram . Den skadliga koden är kopplad , eller sammanfogas med legitima SQL-kommandon för att skapa ett kommando som ger oväntade resultat . SQL
SQL , även känd som Structure Query Language , är en bransch - standard språk för att skapa , uppdatera och söka relationsdatabaser, eller databaser som omfattar flera filer av information , vanligtvis lagras i tabeller i rader och kolumner. SQL ingår ofta i allmänt ändamål programmeringsspråk för att skapa program som tillåter användare att interagera med en databas . Ett program kan innehålla SQL-satser som " SELECT * FROM tabellnamn WHERE tabellnamn . Fältnamn = variabelnamn " där tabellnamn är namnet på en tabell i databasen , är fältnamn namnet på en kolumn , eller fält i den tabellen , och variabelnamn är en värde som anges av användaren .
Severity
svårighetsgraden av en SQL attack begränsas endast av angriparens fantasi och skicklighet . Genom att strategiskt föra in semikolon ( ;) och dubbla bindestreck (-) tecken - som avgränsar SQL-kommandon och kommentarer respektive - anfallare kan avsluta befintliga kommandon förtid och lägga sina egna nya kommandon . Dessa nya kommandon kan till exempel extrahera känsliga data från databasen , ändra eller radera data , eller ge angripare fullständiga administratörsrättigheter till databasen . I exemplet ovan , om SQL-satsen läsa " SELECT * FROM tabellnamn WHERE tablename fältnamn = . ' " + VariableName + ' " , kan användaren ange ytterligare SQL-kommandon och så montera en fråga något liknande " SELECT * FROM tablename.fieldname = ' somevalue ' , . DROP TABLE tabellnamn
Effekter
SQL attacker vanligtvis leda till förlust av sekretess och dataintegritet samt andra allvarliga problem , så organisationer bör ta hotet om SQL attacker allvar . SQL angriper vanligtvis uppstår när data kommer in ett program från en otillförlitlig källa eller data används för att dynamiskt skapa en SQL-fråga , eller båda . SQL attacker kan givetvis påverka SQL självt , men också vilken plattform som kräver interaktion med en SQL-databas . Databasdrivna webbplatser är vanliga mål för SQL , helt enkelt därför att angripare kan upptäcka och utnyttja SQL brister lätt . Addera Prevention
Förutsatt SQL -kod injiceras under en SQL attack innehåller inga syntaxfel , kommer den köra framgångsrikt och kan inte upptäckas programmässigt . Databas programmerare måste därför validera all indata och noggrant granska varje program kod som skapar och kör dynamiska SQL-kommandon för sårbarheter .