Wat is een Content-Security-Policy?
Zonder een Content-Security-Policy laadt een browser alles wat in je HTML staat, ook scripts en afbeeldingen van buiten. Een policy laat je bepalen wat wél mag laden, en van waar.
Een script van buiten draait mee
Zet je een script van een andere partij op je pagina, dan draait dat met dezelfde rechten als je eigen code. Het kan lezen wat een bezoeker typt, meekijken met wat er op de pagina staat, of de bezoeker omleiden. Wordt die partij gehackt, of is ze zelf kwaadwillend, dan gebeurt dat op jouw pagina, bij jouw bezoekers.
Ook een afbeelding is niet zonder risico
Het hoeft niet eens code te zijn. Om een afbeelding bij een externe partij op te halen, stuurt de browser een verzoek naar die partij. Dat verzoek draagt het IP-adres van je bezoeker en de pagina waarop die zit. En omdat de afbeelding bij die partij staat, bepaalt zij wat erin zit: ze kan hem later vervangen door iets waar je niet mee geassocieerd wilt worden, en dat verschijnt dan op jouw pagina.
Een policy zet de grens
Met een policy geef je op welke bronnen mogen laden. De browser houdt zich daaraan en blokkeert de rest. Zo bepaal je zelf wie er meedraait op je pagina, in plaats van dat elke ingesloten partij dat doet.
Zo stel je er een in
Een strikte policy meteen aanzetten kan je pagina breken, dus je rolt hem in stappen uit. Hoe dat gaat verschilt per platform: