August 9, 2025
2 min read
HTTPOnly-cookies zijn een praktische maatregel tegen client-side scriptaanvallen, met name cross-site scripting (XSS). Wanneer het HTTPOnly
-attribuut is ingesteld op een cookie, instrueert dit browsers om dat cookie te onthouden van client-side JavaScript-toegang, zoals via document.cookie
. Deze beveiligingseigenschap richt zich specifiek op de aanvalsvector waarbij kwaadaardige scripts proberen sessie-identificatoren of gevoelige gegevens te kapen door kwetsbaarheden in de scripting-engine van de browser te misbruiken.
Empirische evaluaties tonen aan dat het inschakelen van de HTTPOnly-vlag op sessiecookies het risico op sessiediefstal via XSS-aanvallen aanzienlijk vermindert. In gecontroleerde penetratietest-omgevingen observeerden onderzoekers:
Barth et al. ontdekten dat “de overgrote meerderheid van XSS-aanvallen gebruikmaakt van de mogelijkheid van JavaScript om document.cookie te lezen en sessietokens te exfiltreren” (Barth et al., 2008). Het experiment omvatte het simuleren van XSS-payloads op webapplicaties met en zonder HTTPOnly-cookies. De resultaten toonden een 100% mislukkingspercentage bij pogingen tot cookiediefstal wanneer HTTPOnly aanwezig was, vergeleken met een 100% succespercentage wanneer het afwezig was.
Verdere studies benadrukken dat hoewel HTTPOnly niet alle vormen van XSS voorkomt — zoals die welke pagina-inhoud wijzigen of geauthenticeerde acties uitvoeren (CSRF) — het een belangrijke barrière vormt tegen de meest schadelijke gevolgen van XSS: sessiecompromittering.
Belangrijkste bevindingen:
In de praktijk moet de implementatie van HTTPOnly gecombineerd worden met andere beveiligingsrichtlijnen (zoals Secure- en SameSite-vlaggen) voor een uitgebreide verdediging. Beperkingen zijn onder andere:
Over het algemeen is de effectiviteit van het attribuut goed vastgesteld in academisch en industrieel onderzoek, wat zijn rol als een essentiële controle voor de sessiebeveiliging van webapplicaties bevestigt.