Een SQL-injectie is een kwaadaardige aanval op een computer -database , waardoor een aanvaller inserts , of injecteert , een SQL-query - ? Een formeel verzoek aan de database - in een string die wordt uiteindelijk uitgevoerd door de database via de gegevens die hij gaat een computerprogramma . Indien succesvol , kan een SQL- injectie gevoelige gegevens te extraheren uit de database , invoegen, bijwerken of verwijderen van gegevens of zelfs stilgelegd het database management systeem . Dynamische SQL SQL-injectie maakt gebruik van een programmeertaal techniek die bekend staat als ' dynamische SQL . " De volledige tekst van een dynamische SQL-instructie of opdracht , is onbekend wanneer een programma wordt opgesteld , maar is gebouwd , dynamisch , van de data-invoer door de gebruiker wanneer het programma wordt uitgevoerd . Een aanvaller beëindigt de geconstrueerde opdracht voortijdig en voegt een nieuwe opdracht , afgesloten met een commentaar teken , zoals " - " , zodat elke latere tekst wordt genegeerd op uitvoeringstijd . In een iets meer verfijnde vorm van SQL injectie , injecteert een aanvaller kwaadaardige code in de gegevens die zijn opgeslagen in de database , dat de opgeslagen gegevens worden opgehaald en gebruikt om een dynamische SQL statement construeren , wordt de schadelijke code uitgevoerd < . br > Effecten Precies wat aanvallers kunnen bereiken door SQL- injectie is afhankelijk van hun fantasie en vaardigheid, maar typisch gevolgen van een SQL-injectie zijn verlies van vertrouwelijkheid , verlies van data-integriteit en problemen met betrekking tot de authenticatie of autorisatie van gebruikers database . Als autorisatie-informatie wordt gehouden in de database zelf , kan een SQL-injectie de informatie eruit te halen , of aan te passen , zodat onbevoegde gebruikers verbinding kunnen maken met de database. Beïnvloed Platforms < br > SQL injectie geldt uiteraard de SQL , de meest voorkomende database query taal , maar elk platform dat interactie vereist met een SQL-database kan worden beïnvloed . SQL injection kwetsbaarheden zijn eenvoudig op te sporen en gemakkelijk te exploiteren , wat heeft ertoe geleid dat SQL-injectie is uitgegroeid tot een gemeenschappelijk probleem met de database- software en database - driven websites. Validation Als een aanval injecteert kwaadaardige SQL- code die wordt uitgevoerd zonder fouten , is er geen manier om SQL-injectie te detecteren vanuit een computerprogramma . Database programmeurs moeten dus alle programma- code die dynamische SQL-instructies construeert beoordelen en valideren van alle input van de gebruiker , zonder enige veronderstellingen over de omvang , de inhoud of de aard van de gegevens . Een aanvaller kan opzettelijk een " DROP TABLE " statement , of een andere , even kwaadaardige verklaring in een tekstveld insluiten , zodat programmeurs moet ervoor zorgen dat programma's gedragen zich adequaat in dergelijke omstandigheden . < Br > |