HTTP headers die je webapplicatie veiliger maken

Een eenvoudige manier om je bezoeker te beschermen bij een geslaagde hack op je webapplicatie,
is door gebruik te maken van de nieuwe beveiligings features die nu in veel webbrowser komen.
Veel van deze features werken door speciale HTTP header opties te sturen. Een nuttige optie is bijvoorbeeld de X-FRAME-OPTIONS http header die aangeeft of een webpagina in een frame geladen mag worden.
Als je bijvoorbeeld wilt dat je PHP applicatie niet in een frame mag worden weergeven dan moet je dit voordat je html begint te versturen op die pagina de volgende regel opnemen.

header("X-FRAME-OPTIONS: DENY");

Een nog verder gaande beveilig optie is X-Content-Security-Policy HTTP header, die beperkt waar inhoud vandaan geladen mag worden.
Echter zijn er vrij weinig  webbrowser(chrome) die deze beveiligings feature al ondersteunen.
Als je bijvoorbeeld de volgende regel toevoegd mag inhoud (afbeeldingen, css, javascript bestanden enz.) alleen van hetzelfde domein komen.

header("X-Content-Security-Policy: allow 'self';");

d9ping headers in httpfox
Let wel op dat deze maatregelen slechts de impact van misbruikt beperken, als je een XSS probleem hebt is het echte probleem niet opgelost. Daarbij komt nog dat het voor een heleboel oudere webbrowser niet werkt. Maargoed, je bezoekers zouden ook geen Internet Explorer6 meer moeten gebruiken. Deze website heeft de beveiliging features in ieder geval wel al ingebouwd en IE6 gebruikers wordenwerden gewaarschuwd dat ze moesten upgraden naar een hogere versie van hun browser. Een manier om de Http headers te bekijken is door het programma Wireshark of bijv. de Firefox extensie’s als: HttpFox,  Live HTTP Headers of Firebug te gebruiken.
Het is ook nog mogelijk via HTTP headers de XSS(cross scripting) filter van Internet Explorer aan- en uit te zetten. Dit kan met:

header("X-XSS-Protection: 1; mode=block");

maar het is niet nodig deze header te gebruiken want de XSS filter staat standaard al aan.