Nieuw in Magento 2.3.5: Content Security Policy

De meest recente versie van Magento 2.3.5. heeft een nieuwe beveiligings functionaliteit geïntroduceerd: De Content Security Policy (CSP). Deze nieuwe functionaliteit is een mooie toevoeging aan de beveiligingsopties die Magento al biedt, en wordt gezien als een best practice voor het beveiligen van je shop. Maar wat is een CSP en waarom moet je het toepassen?

Wat is Content Security Policy (CSP)

Een website bevat (veel) verschillende scripts. Deze scripts zorgen voor extra functionaliteiten in je webshop, zorgen ervoor dat de customer journey op de website gemeten wordt of houden bij hoeveel van je advertenties converteert. Het meten van je website via Google Analytics gaat bijvoorbeeld via een script dat wordt ingeladen.

De meeste scripts worden voor goede doeleinden ingezet. Helaas zijn er ook scripts die je in je webshop moet weren. Een voorbeeld is een script die creditcard gegevens en wachtwoorden doorsluist naar hackers. Deze scripts kunnen alleen geplaatst worden wanneer een hacker toegang heeft verkregen tot de webshop via gelekte admin gegevens of via een exploit in een extensie, het template of een bug in Magento zelf.

De kans dat dit gebeurt is natuurlijk minimaal wanneer je de webshop en extensies goed up-to-date houdt. Echter zijn er voorbeelden uit het verleden van aanvallen die succesvol zijn geweest. De meest bekende aanval is die van de Magecart groep die op grote schaal persoonlijke gegevens wisten door te sluizen via scripts.

Hierbij komt een CSP goed van pas. Een CSP is een regel op de website waarmee je de browser instrueert welke scripts er geladen mogen worden. Scripts die niet in het CSP zijn opgenomen zullen ook niet ingeladen worden door de browser. De CSP is een Last line of defense omdat het script wel al geplaatst is op de website maar simpelweg niet geactiveerd kan worden bij de bezoeker. Je voorkomt hiermee dat data onterecht van je website weggesluisd kan worden. Naast dat een CSP scripts tegenhoudt die niet toegestaan zijn, stuurt het ook een melding wanneer een scripts niet in de CSP is opgenomen. Hierop kan vervolgens snel geacteerd worden om het script zo snel mogelijk te verwijderen.

Wat houdt dit in voor jouw webshop?

CSP’s zijn niet nieuw en wordt al op veel websites toegepast. Echter heeft Magento deze functionaliteit met versie 2.3.5. pas geïntroduceerd en zet dit standaard aan bij het updaten. Standaard staat CSP op report-only modus, dat wil zeggen dat het alleen de scripts die nog niet aan de CSP zijn toegevoegd rapporteert. In je browser console zie je de foutmeldingen terug komen, zie de bijlage voor een voorbeeld van de foutmeldingen. Er wordt verder nog niets geblokkeerd. Logisch, anders zou een deel van je website niet meer werken wanneer de CSP nog niet (goed) is ingericht.

Voorbeeld van de browser console wanneer de CSP nog niet is ingesteld.

Nadat je je CSP hebt opgemaakt is het advies de zogeheten Restrict modus in te schakelen op je website, waarbij de scripts ook daadwerkelijk geblokkeerd worden als ze niet in het CSP zijn opgenomen. Alleen dan heb je meer zekerheid dat je shop veilig blijft in het geval er een ongeautoriseerd script geplaatst is. Het nadeel van deze modus is wel dat scripts die je aan de webshop toevoegt eerst aan de CSP moeten worden toegevoegd voordat ze werken. Dit kan bijvoorbeeld vervelend zijn wanneer je marketing of analytische scripts zoals Hotjar wilt toepassen. De verwachting is dat Magento de restrict mode in latere versies gaat aanhouden als de standaard. Het is dus verstandig om dit nu al goed toe te passen.

Omdat het CSP alleen direct in de code aangepast kan worden is dit iets wat je als webshop beheerder niet gemakkelijk zelf kunt doorvoeren via de configuratie van Magento. Dit heeft te maken met de veiligheid: wanneer een hacker toegang heeft tot de webshop, dan kan de hacker zijn eigen script aan de CSP toevoegen. Je webshopbouwer kan je hierbij helpen door de CSP voor je aan te maken en de gewenste modus in te stellen. Eerst moet de website gescand worden op scripts die op jouw website worden ingeladen. Vervolgens moeten de scripts aan de CSP toegevoegd worden, waarna de site gemonitord moet worden of alles nog naar wens werkt. Indien gewenst kan dan de restrict modus gehanteerd worden. Mocht je later nog een keer een nieuw script in de webshop willen activeren, dan kun je dit voorleggen bij de website bouwer zodat het ook aan de CSP kan worden toegevoegd.

Heb je hulp nodig bij de implementatie van de CSP dan kunnen wij je daarbij ondersteunen. Neem contact met ons op voor vragen, opmerkingen en de mogelijkheden.