A injectie SQL SQL-injectie (SQLi) is een kwaadaardige techniek die door aanvallers wordt gebruikt om de beveiliging van een webapplicatie in gevaar te brengen.
Dit bestaat uit het invoegen van kwaadaardige SQL-code in de invoervelden van een webtoepassing om de onderliggende database te manipuleren.. Het gebruikt kwetsbaarheden in de manier waarop de applicatie omgaat met gebruikersinvoer en SQL-query's opbouwt.
SQL-injectie is een van de vele soorten kwaadaardige injecties.
Hoe het werkt
Het basisprincipe is als volgt:
- De aanvaller voegt kwaadaardige SQL-code in een invoerveld (formulier, URL, enz.) in.
- De applicatie integreert deze code zonder deze correct te filteren in de SQL-query
- De database voert het gewijzigde verzoek uit, waardoor de aanvaller toegang krijgt tot de gegevens of deze kan manipuleren.
Voorbeelden
Hier zijn enkele veelvoorkomende voorbeelden van SQL-injecties:
- Authenticatie omzeilen :
sql
SELECT * VAN gebruikers WAAR gebruikersnaam = admin --' AND wachtwoord = 'wachtwoord
- Le
--
geeft commentaar op de rest van het verzoek, waardoor je verbinding kunt maken zonder wachtwoord. - Gegevensextractie :
sql
SELECT * VAN gebruikers WAAR id = 1 UNIE SELECT gebruikersnaam, wachtwoord VAN gebruikers --
- Deze injectie herstelt alle gebruikersnamen en wachtwoorden.
Wat eraan te doen
Er zijn een aantal goede praktijken die je kunt volgen om jezelf te beschermen:
- Geparameteriseerde query's of opgeslagen procedures gebruiken
- Alle gebruikersgegevens valideren en filteren
- Het principe van de minste rechten toepassen voor databaseaccounts
- Tools gebruiken om SQL-injecties op te sporen en te voorkomen
- Ontwikkelaars trainen in goede beveiligingspraktijken