Magento 2 Content-Security-Policy Del 1

Fra og med version 2.3.5 understøtter Magento “Content-Security-Policy”(omtales herefter CSP), og lancerer samtidig et værktøj til at konfigurere det. Magento tilbyder en række standard-regler, men med mulighed for custom-regler for individuelle moduler og specifikke storefronts/sider.

Hvad ér CSP og hvorfor er det så vigtigt?

CSP er et værktøj/metode til at dæmme op for Cross Site Scripting (XSS) og de hacks der relaterer sig fx.: card skimmers, session hijacking og clickjacking. CSP leverer et standardiseret sæt af direktiver, der fortæller browseren, hvilke indholdsressourcer, der kan være tillid til, og hvilke der skal blokeres. Ved brug af omhyggeligt definerede regler begrænser CSP browserindhold til kun at omfatte whitelistede ressourcer.

CSP og browseren arbejder dermed sammen om, at forhindre fx.:

  • At man indlæser et ondsindet script fra en angribers eksterne server.
  • Et ondsindet inline script fra at sende kreditkortinfo til en angribers server.
  • Indlæser en ondsindet style, der får brugerne til at klikke på et element, der ikke burde være på en side.

I Magento 2.3.5 fungerer CSP som standard i report-only-tilstand for at give købmænd og udviklere mulighed for at konfigurere reglerne for det specifikke websted og identificere de indholdsressourcer, der skal tillades. Herunder et eksempel på en response header med de regler der er inkl. ud af boksen:

HTTP/1.1 200 OK
Date: Fri, 05 Jun 2020 09:00:34 GMT
Server: Apache
Pragma: no-cache
Cache-Control: max-age=0, must-revalidate, no-cache, no-store
Expires: Wed, 05 Jun 2019 08:59:54 GMT
Content-Security-Policy-Report-Only: font-src 'self' 'unsafe-inline'; form-action geostag.cardinalcommerce.com geo.cardinalcommerce.com 1eafstag.cardinalcommerce.com 1eaf.cardinalcommerce.com centinelapistag.cardinalcommerce.com centinelapi.cardinalcommerce.com secure.authorize.net test.authorize.net 'self' 'unsafe-inline'; frame-ancestors 'self' 'unsafe-inline'; frame-src geostag.cardinalcommerce.com geo.cardinalcommerce.com 1eafstag.cardinalcommerce.com 1eaf.cardinalcommerce.com centinelapistag.cardinalcommerce.com centinelapi.cardinalcommerce.com secure.authorize.net test.authorize.net www.paypal.com www.sandbox.paypal.com 'self' 'unsafe-inline'; img-src widgets.magentocommerce.com www.googleadservices.com www.google-analytics.com t.paypal.com www.paypal.com www.paypalobjects.com fpdbs.paypal.com fpdbs.sandbox.paypal.com *.vimeocdn.com s.ytimg.com 'self' 'unsafe-inline'; script-src assets.adobedtm.com geostag.cardinalcommerce.com 1eafstag.cardinalcommerce.com geoapi.cardinalcommerce.com 1eafapi.cardinalcommerce.com songbird.cardinalcommerce.com includestest.ccdc02.com www.googleadservices.com www.google-analytics.com secure.authorize.net test.authorize.net www.paypal.com www.sandbox.paypal.com www.paypalobjects.com t.paypal.com s.ytimg.com video.google.com vimeo.com www.vimeo.com js.authorize.net jstest.authorize.net js.braintreegateway.com cdn-scripts.signifyd.com www.youtube.com 'self' 'unsafe-inline' 'unsafe-eval'; style-src getfirebug.com 'self' 'unsafe-inline'; object-src 'self' 'unsafe-inline'; media-src 'self' 'unsafe-inline'; manifest-src 'self' 'unsafe-inline'; connect-src geostag.cardinalcommerce.com geo.cardinalcommerce.com 1eafstag.cardinalcommerce.com 1eaf.cardinalcommerce.com centinelapistag.cardinalcommerce.com centinelapi.cardinalcommerce.com 'self' 'unsafe-inline'; child-src 'self' 'unsafe-inline'; default-src 'self' 'unsafe-inline' 'unsafe-eval'; base-uri 'self' 'unsafe-inline';
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Set-Cookie: PHPSESSID=4vr9a1a34jp8q7klhqdi8tq2kt; expires=Fri, 05-Jun-2020 10:00:34 GMT; Max-Age=3600; path=/; domain=cspdev.dev.magepartner.net; HttpOnly
Vary: Host
Content-Length: 26463
X-Served-By: Apache, dev.magepartner.net, ipv4: 185.31.76.70 ipv6: 2a00:b920:2:1337::70, vhost = csp.dev
X-UA-Compatible: IE=edge
X-Robots-Tag: noindex, nofollow, noarchive, nosnippet, noodp, notranslate, noimageindex
Content-Type: text/html; charset=UTF-8

Bemærk, at denne default Magento 2.3.5 for det første kører report-only, men også inkluderer regler for pre-installerede moduler som fx. paypal.

I næste afsnit af denne gennemgang vil vi vise nogle af mulighederne ifm. den praktiske opsætning af CSP i Magento 2.

Om forfatter

Relaterede artikler

Nyhedsbrev... Privat, sikkert og spam-fri.