SQL-injectie

Een SQL-injectie is een vorm van cyberaanval die gericht is op databankgekoppelde websites en webapps. Bij deze aanvallen wordt misbruik gemaakt van onjuist geconfigureerde serversoftware voor websites en databanken om een server ertoe te verleiden SQL-instructies te verwerken die deze anders niet zou uitvoeren. Deze aanvallen kunnen gevoelige persoonlijke en financiële informatie onthullen, een aanvaller toestaan informatie in een databank te wijzigen of te verwijderen, of andere onbevoegde toegang bieden.

Een website is kwetsbaar voor een SQL-injectie wanneer deze invoer van een gebruiker accepteert uit een tekstueel formulier en die invoer als onderdeel van een SQL-query gebruikt. In plaats van het formulier in te vullen met de verwachte informatie zoals een (gebruikersnaam), voert de aanvaller een tekstuele tekenreeks in die de SQL-query wijzigt. Een hypothetische query kan bijvoorbeeld beginnen met SELECT UserID, Name, Password FROM Users WHERE UserID = , gevolgd door de invoer uit een formulier voor gebruikers-ID. Als de gebruiker zijn of haar gebruikers-ID invoert, werkt de query zoals verwacht en worden de bijbehorende gegevens opgehaald.

Een aanvaller voegt onverwachte tekst toe aan een query-instructie om deze te wijzigen
Een aanvaller voegt onverwachte tekst toe aan een query-instructie om deze te wijzigen

Als de server de ingevoerde tekst echter zonder beperkingen in de query plaatst, kan een aanvaller deze gebruiken om de SQL-query zelf te wijzigen. Als iemand in plaats van een gebruikers-ID de tekst 317 OR 1=1 invoert, wordt de query SELECT UserID, Name, Password FROM Users WHERE UserID = 317 OR 1=1;. Omdat OR 1=1 altijd als waar wordt geëvalueerd, overschrijft dit de gebruikers-ID; de query retourneert in plaats daarvan de gebruikers-ID's, namen en wachtwoorden van alle vermeldingen in de tabel Users. Andere soorten code-injectie kunnen een aanvaller toestaan in te loggen als sitebeheerder, records of tabellen uit een databank te verwijderen of (in sommige extreme gevallen) shell-scripts en andere code in te voegen en uit te voeren.

Een websitebeheerder kan SQL-injectieaanvallen voorkomen door de serversoftware up-to-date te houden. Het is ook belangrijk om invoer voor databanken te "saneren" door tekstinvoer te beperken of bepaalde tekens eruit te filteren. Websitebeheerders kunnen hun SQL-query's ook parametriseren — door plaatshouders in de query te gebruiken die naar de gebruikersinvoer verwijzen, in plaats van deze rechtstreeks in de query te plaatsen.

Bijgewerkt March 20, 2023 door Brian P.

quizTest je kennis

A reusable solution for software development is also called what?

A
Pipeline template
0%
B
Object simulation
0%
C
White box test
0%
D
Design pattern
0%
Correct! Incorrect!     View the Design Pattern definition.
More Quizzes →

Het Tech Terms computerwoordenboek

De definitie van SQL-injectie op deze pagina is een originele definitie geschreven door de auteurs van TechTerms.com. Als je naar deze pagina wilt verwijzen of deze definitie wilt citeren, gebruik dan de groene citatiebalk direct onder de definitie.

Ons doel is om computerterminologie op een begrijpelijke manier uit te leggen. We streven naar nauwkeurigheid en eenvoud bij elke definitie die we publiceren. Als je feedback hebt over deze definitie of een nieuwe technische term wilt voorstellen, neem dan contact met ons op.

De Tech Terms-nieuwsbrief

Verbeter je technische kennis met onze dagelijkse of wekelijkse nieuwsbrief! Abonneer je vandaag nog en ontvang nieuwe termen en quizzen in je inbox.

Schrijf je in voor de gratis TechTerms-nieuwsbrief

Hoe vaak wil je een e-mail ontvangen?

Je kunt je op elk moment uitschrijven of je frequentie wijzigen via de links in elke e-mail. Vragen? Neem contact met ons op.

Let op: de nieuwsbrief wordt in het Engels verzonden.