In september 2018 heb ik al een blog geschreven over Content Security Policies. Hiermee kan je een extra laag bescherming toevoegen aan een website. Kort samengevat komt het erop neer dat jij bepaald welke bestanden van externe websites in jouw website ingeladen mogen worden. Hiermee worden o.a. JS, CSS, HTML bestanden bedoelt maar ook Youtube films.
Hoe strenger je het instelt hoe meer bescherming, maar hoe sneller je ook tegen de beperkingen aanloopt. Ik merk dit vooral bij het inladen van advertenties. Google verandert af en toe de externe bronnen voor advertenties. Dit heeft als gevolg dat de advertenties niet geladen worden. Vandaag heb ik daarom mijn Content Security Policies bijgewerkt met 2 nieuwe domeinnamen.
Mijn CSP instellingen in .htaccess:
Header set Content-Security-Policy "default-src *.timdehoog.nl *.wp.com csi.gstatic.com; frame-src *.timdehoog.nl googleads.g.doubleclick.net *.wp.com; script-src 'unsafe-inline' 'unsafe-eval' *.timdehoog.nl *.googleapis.com *.googlesyndication.com adservice.google.nl adservice.google.com cdn.ampproject.org *.googletagservices.com *.wp.com; style-src 'unsafe-inline' *.timdehoog.nl *.googleapis.com *.wp.com *.bootstrapcdn.com; font-src data: *.timdehoog.nl fonts.gstatic.com *.wp.com wordpress.com *.bootstrapcdn.com; media-src *.timdehoog.nl; img-src data: *.timdehoog.nl *.w.org *.wp.com *.wordpress.com *.gravatar.com *.googlesyndication.com" Header set X-Content-Security-Policy "default-src *.timdehoog.nl *.wp.com csi.gstatic.com; frame-src *.timdehoog.nl googleads.g.doubleclick.net *.wp.com; script-src 'unsafe-inline' 'unsafe-eval' *.timdehoog.nl *.googleapis.com *.googlesyndication.com adservice.google.nl adservice.google.com cdn.ampproject.org *.googletagservices.com *.wp.com; style-src 'unsafe-inline' *.timdehoog.nl *.googleapis.com *.wp.com *.bootstrapcdn.com; font-src data: *.timdehoog.nl fonts.gstatic.com *.wp.com wordpress.com *.bootstrapcdn.com; media-src *.timdehoog.nl; img-src data: *.timdehoog.nl *.w.org *.wp.com *.wordpress.com *.gravatar.com *.googlesyndication.com"
Bovenstaande regels kan je in het .htaccess bestand plaatsen. Je kan deze ook met PHP headers zetten, maar omdat ik gebruik maak van WP Rocket werkt dat niet.
Je ziet dat ik de headers Content-Security-Policy en X-Content-Security-Policy gebruik die verder dezelfde waardes bevatten. De X-Content-Security-Policy heb je nodig voor Internet Explorer en Microsoft Edge. De andere header heb je nodig voor alle andere browsers.
Op internet staat dat X-Content-Security-Policy deprecated is, wat betekent dat hij niet meer wordt ondersteund. Ik voeg hem toch toe omdat het meer beveiliging biedt. Internet Explorer en Edge worden nog steeds veel gebruikt.