Wat is een SQL-injectie?
Een injectie met Structured Query Language (SQL) is een type aanval dat bijna altijd wordt geprobeerd tegen een website die database-gestuurd is. Het is een poging om kwaadaardige code in de SQL-query's van de site in te voegen om het gegevensbeheer te verstoren door gegevens te vernietigen, te wijzigen of te onthullen die zijn opgeslagen in de tabellen van de database die de site aanstuurt. SQL is een standaard programmeertaal die wordt gebruikt voor het maken, bijwerken en ophalen van gegevens die zijn opgeslagen in databases.
De gevaren van SQL-injectieaanvallen zijn talrijk en vaak zeer verwoestend wanneer ze met succes worden uitgevoerd. Gevoelige informatie zoals creditcardnummers, medische gegevens van een persoon, gebruikersnamen en wachtwoorden voor accounts zoals online bankieren en e-mail, evenals verschillende soorten identificatienummers kunnen worden blootgesteld aan cybercriminelen. Hoewel de diefstal van gegevens waarschijnlijk het hoofddoel is van iedereen die probeert SQL-injectie te gebruiken, is dit niet de enige motivatie voor het gebruik van deze of een ander type code-injectie-techniek, zoals cross-site scripting. Bezoekers van een website die informatie weergeeft die ze niet leuk vinden, kunnen SQL-injectieaanvallen proberen om de site uit te schakelen, gegevens stelen of de gegevens wijzigen om de missie van de mensen achter de site te vernietigen.
Soms wordt een SQL-injectieaanval geprobeerd tegen een website door een ontevreden bezoeker die zijn of haar account kan hebben verbannen door de site-eigenaren, die jaloers is op de populariteit van de site of die probeert de online business van iemand die hij of zij overweegt te vernietigen een vijand zijn. Kennis van SQL is uiteraard vereist om een SQL-injectieaanval te starten, maar het wordt over het algemeen niet als een zeer moeilijke taal beschouwd om te leren, in vergelijking met andere programmeertalen, en veel kan worden bereikt met slechts een basiskennis, maar solide, begrip van hoe te gebruiken het. Dit betekent dat een groot aantal mensen die op internet surfen, over de nodige vaardigheden beschikken om een SQL-injectie tegen een website te proberen.
Webontwikkelaars, met name degenen die gespecialiseerd zijn in back-end webontwikkeling, zijn er verantwoordelijk voor dat de sites die zij programmeren beveiligd zijn tegen SQL-injectie. Er is bijna altijd meer dan één manier om zo'n belangrijke beveiliging te bereiken, en de meeste van deze methoden worden beschouwd als eenvoudige maar zeer effectieve oplossingen. Een ontwikkelaar kan bijvoorbeeld de functie mysql_real_escape_string () gebruiken of instructies voorbereiden bij het scripten in de hypertext preprocessor (PHP) -taal. De gekozen methoden om te beschermen tegen aanvallen moeten zorgvuldig worden overwogen, omdat de prestaties van de site als geheel niet kunnen worden genegeerd, zelfs bij het instellen van de beveiliging.