Skip to main content

SQL-injectie

Injectie van gestructureerde querytaal

Gerelateerde fout

"Deze server is kwetsbaar voor een SQL-injectie-aanval. Zorg ervoor dat de invoer-SQL-query is gevalideerd."

Probleem

Een SQL-injectie-aanval is een soort kwetsbaarheid in de code van websites en webapplicaties. Dit beveiligingslek stelt een aanvaller in staat back-endprocessen te kapen en de query's die een applicatie op zijn database plaatst, te verstoren.

SQL-injectie-aanvallen vinden plaats wanneer gegevens een programma binnenkomen vanuit een niet-vertrouwde bron. De gegevens worden vervolgens gebruikt om dynamisch een SQL-query te construeren.

Wanneer SQL-injectieaanvallen succesvol zijn, kunnen aanvallers:

  • Inloggen op een applicatie of op een website front-end zonder wachtwoord.

  • Opgeslagen gegevens uit beveiligde databases openen, wijzigen en verwijderen.

  • Hun eigen databaserecords maken of bestaande records wijzigen, waardoor de weg wordt vrijgemaakt voor meer aanvallen.

Oplossing

Voorkom SQL-injectieaanvallen door:

  1. Het gebruik van voorbereide instructies (met geparameteriseerde query's) om ervoor te zorgen dat de parameters (als invoer) die worden doorgegeven aan SQL-instructies op een veilige manier worden verwerkt.

  2. Validatie van invoergegevens op de toelatingslijst (niet blokkeren). Filter gebruikersinvoer niet op basis van blokkeringslijsten. Aanvallers vinden bijna altijd een manier om uw lijst te omzeilen. Verifieer en filter zo mogelijk gebruikersinvoer met alleen strikte toelatingslijsten.

  3. Escaping van speciale tekens uit invoerparameters wanneer geparameteriseerde query's en validatie van invoergegevens niet mogelijk zijn.

  4. Handhaving van het principe van de minste privileges, versterking van de toegangscontrole tot uw website om beveiligingsrisico's te verminderen.

    • Gebruik de minimale set privileges op uw systemen om een actie uit te voeren.

    • Verstrek privileges alleen zolang de actie nodig is.

    • Geef geen beheerderstoegangsrechten tot applicatieaccounts.

    • Minimaliseer de bevoegdheden van elk database-account in uw omgeving.