Website-beveiligingsheaders zijn korte instructies die een server bij elke pagina meestuurt en die de browser van de bezoeker vertellen hoe die zich veiliger moet gedragen. De browser leest ze voordat hij iets weergeeft, dus ze bepalen de regels van de pagina: welke scripts mogen draaien, of de verbinding versleuteld moet blijven, en of andere sites jouw site mogen insluiten. Ze kosten niets om toe te voegen en blokkeren stilletjes hele soorten aanvallen.
Zie ze als de veiligheidsinstructie aan boord van een vliegtuig. Het toestel vliegt prima zonder, maar de instructie stelt heldere regels zodat passagiers juist handelen als er iets misgaat. Een van de krachtigste is de Content Security Policy, die precies opsomt welke bronnen van code de pagina vertrouwt en de rest blokkeert, een sterke verdediging tegen cross-site scripting.
Andere veelvoorkomende headers dwingen browsers naar HTTPS, voorkomen dat je paginas in een verborgen frame worden geladen, en verbergen details over je serversoftware. De Strict-Transport-Security-header vertelt een browser bijvoorbeeld om alleen nog via HTTPS te verbinden, ook als een bezoeker het kale adres intikt. Geen van alle vervangt veilige code, maar samen vormen ze een goedkope, blijvende laag die een site harder maakt tegen de meest voorkomende kansaanvallen.
Een praktische kanttekening: headers stel je makkelijk één keer in en vergeet je daarna, waarna ze stil breken als de site verandert. Voeg je een betaalwidget of analyticsscript toe, dan blokkeert een strikt beleid het soms zonder duidelijke foutmelding. Dus ze vragen een snelle hercheck na elke release, geen eenmalige instelling. Het mooie is dat de veilige headers vandaag al op elke site kunnen, terwijl je de kieskeurige gaandeweg afstemt.
Bij TopDevs zetten we op elke site die we opleveren een verstandige basis aan security headers, en stemmen we de Content Security Policy af op de echte scripts van de klant, zodat bescherming nooit de pagina breekt.