httpOnly cookie in PHP
Via deze blogpost van Ilia komen we te weten dat PHP 5.2 een nieuwe feature krijgt. Om in de toekomst cross-site scripting (XSS) aanvallen te verminderen is de httpOnly flag in het leven geroepen. Dit betekent dat cookies niet zomaar via scripttalen als Javascript uitgelezen kunnen worden.
De httpOnly feature blijkt een uitvinding te zijn van Microsoft, zoals hier te lezen valt. De browser moet wel deze feature ondersteunen. Via deze post komen te weten welke browsers het ondersteunen:
- IE 6.0 SP1 and later - prevents reading, but not over-writing (still allows preset CSRF attacks)
- IE 7.0 - prevents reading and writing - safest
- Safari 1.3 and later - prevents reading
- Opera 8 and later - prevents reading
- Mozilla - not supported
- Firefox - not supported
- IE 5.x for Mac - will actually fail to render the page. Use browser detection to encourage them to migrate to Safari or Firefox once it supports HttpOnly
Wat onmiddelijk opvalt is dat Firefox hiervoor geen ondersteuning heeft. Daar moet natuurlijk verandering in komen!
Volg Scriptorama via RSS!
Reageer ook!
Hoewel Firefox inderdaad geen "native" ondersteuning heeft voor HttpOnly cookies, bestaat er wel een manier om dit te realiseren. Dit wordt beschreven in dit blog artikel van Gervase Markham.
De truc is om de cookie functie in de HTMLDocument prototype te wijzigen, bijvoorbeeld met een GreaseMonkey script:
Door Mathieu Kooiman
op 08.12.06 @ 8:32 am | Permalink
Spijtig genoeg blijkt de bug report om deze feature in Mozilla in te bouwen reeds te bestaan sinds eind 2002: https://bugzilla.mozilla.org/show_bug.cgi?id=178993
Door Dietrich
op 08.12.06 @ 12:07 pm | Permalink
Dat is inderdaad heel jammer. Nu PHP dit gaat krijgen moet Firefox dit wel implementeren als 'true webdeveloper browser'.
Door Tri Pham
op 08.12.06 @ 2:18 pm | Permalink
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>