Wat is cross site scripting en waarom is het zo gevaarlijk
Cross site scripting, vaak afgekort tot XSS, is een veelvoorkomende kwetsbaarheid in webapplicaties. Een aanvaller weet hierbij eigen JavaScript code in jouw website te laten uitvoeren, bijvoorbeeld via een invoerveld, een reactieformulier of een slecht beveiligde plug-in. Bezoekers zien de vertrouwde domeinnaam, maar ondertussen draait er kwaadwillende code in hun browser.
Met XSS kunnen sessiecookies worden gestolen, formulieren worden gemanipuleerd of kwaadaardige redirects worden uitgevoerd. Voor een WordPress site of webshop kan dit leiden tot datalekken, reputatieschade en zelfs misbruik van accounts met beheerdersrechten. Alleen vertrouwen op plug-ins of basisinstellingen van je hosting is daarom niet voldoende.
Wat doet een content security policy precies
Een Content Security Policy, kortweg CSP, is een extra veiligheidslaag die je via een HTTP header of meta tag aan je website toevoegt. Met CSP vertel je de browser expliciet welke scripts, styles, afbeeldingen en andere bronnen wel en niet geladen mogen worden. Alles wat buiten deze lijst valt wordt standaard geblokkeerd.
Stel dat een aanvaller erin slaagt om een kwaadaardig script in een formulierreactie te plaatsen. Zonder CSP zal de browser dit script gewoon uitvoeren. Met een goed ingestelde CSP mag JavaScript alleen nog worden geladen vanaf jouw eigen domein, of van expliciet toegestane CDN’s. Het ingespoten script komt vanaf een onbekende bron en wordt daardoor door de browser tegengehouden.
Een veilige basisconfiguratie voor je CSP header
Een veelgebruikte manier om te starten is het configureren van de HTTP header Content-Security-Policy op je webserver. Voor een typische WordPress installatie kun je beginnen met een strikt maar werkbaar beleid, waarin je stap voor stap uitzonderingen toevoegt voor bijvoorbeeld je CDN of betaalprovider.
Heb je jouw WordPress site ondergebracht op een professionele hostingomgeving, dan kan je hostingpartij helpen bij het correct toevoegen van deze header. Bij PC Patrol zien we in de praktijk dat het combineren van een veilige configuratie met moderne hostingoplossingen veel beveiligingsproblemen voorkomt. In een eerder artikel bespraken we bijvoorbeeld al waarom een web application firewall onmisbaar is voor een veilige WooCommerce webshop. CSP is een waardevolle extra laag bovenop zo’n oplossing.
Testen, monitoren en stap voor stap aanscherpen
Een te strenge Content Security Policy kan legitieme functionaliteit breken, bijvoorbeeld het laden van externe scripts voor analytics of betaalmodules. Begin daarom met een rapportagemodus via de header Content-Security-Policy-Report-Only. De browser voert de regels dan nog niet af, maar stuurt wel rapportages wanneer een bron wordt geblokkeerd.
Op basis van deze rapporten kun je je beleid verfijnen totdat alle noodzakelijke bronnen correct zijn toegestaan en verdachte bronnen worden geweigerd. Combineer dit met regelmatige beveiligingscontroles, updates van WordPress, thema’s en plug-ins, en een goede back-up strategie zoals we ook benadrukken in onze blog over het belang van backups maken.
Wil je CSP instellen maar weet je niet waar je moet beginnen, dan kan PC Patrol je helpen met het inrichten van een veilige hostingomgeving, het analyseren van je huidige configuratie en het gefaseerd uitrollen van een Content Security Policy op jouw website. Neem gerust contact op via de informatie op onze contact pagina.