Door Joost Schellevis

Redacteur

Sql-injectie en xss: de beste verdediging

Inleiding

Het is je misschien opgevallen dat we op Tweakers.net de laatste tijd nogal vaak over datalekken schrijven. Recent behandelden we nog beveiligingsproblemen op de websites van het Spoorwegmuseum, een aantal supermarkten, Kluwer en Tivoli. De genoemde beveiligingslekken hebben één ding gemeen: ze zijn allemaal veroorzaakt door sql-injectie.

Sql-injectie is een van de aanvalsmethoden die een hacker kan gebruiken als gebruikersinvoer op een website niet met voldoende zorg wordt behandeld. Ook cross site scripting wordt daardoor veroorzaakt. Deze problemen zijn al jaren bekend, maar toch blijken er keer op keer websites kwetsbaar voor te zijn.

Dat het een groot probleem is, blijkt ook uit de top-10 van beveiligingsrisico's die het Open Web Application Security Project opstelde. Injecties, waaronder die van sql, staan op de eerste plaats.

Veel ontwikkelaars lijken dus niet of niet goed genoeg te weten wat sql-injectie is en hoe het kan worden voorkomen. Vandaar dat we het in dit artikel nog één keer uitleggen: wat zijn deze problemen, hoe worden ze veroorzaakt en hoe kunnen ze worden voorkomen?

We richten ons in dit artikel vooral op de talen PHP en MySQL, hoewel het probleem ook bij andere programmeertalen en databasesoftware speelt. PHP en MySQL treffen we echter het meest aan bij datalekken waarbij sql-injectie een rol speelt.

Bron: XKCD.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee