Skip to content

Content-Security-Policy

This content is not available in your language yet.

Wenn dein Shop ohne Content-Security-Policy läuft — was bei Shopware-Standard­instal­la­tionen die Regel ist — kannst du diese Seite überspringen. Läuft eine strikte Policy, fehlen Antares genau zwei Einträge.

DirektiveErgänzungWofür
script-srchttps://cdn.antares.commergy.deLädt den 2-kB-Loader und, wenn ein Kunde das Suchfeld anfasst, das Widget-Bundle.
connect-srchttps://api.antares.commergy.deDie Suchanfragen selbst und die Klick-Events für die Analytics.
nginx
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://cdn.antares.commergy.de; connect-src 'self' https://api.antares.commergy.de; img-src 'self' data: https:; style-src 'self' 'unsafe-inline';" always;
Apache
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' https://cdn.antares.commergy.de; connect-src 'self' https://api.antares.commergy.de; img-src 'self' data: https:; style-src 'self' 'unsafe-inline';"

Beide Beispiele sind bewusst vollständig statt als Fragment: eine CSP-Direktive, die irgendwo im Header schon einmal steht, wird durch eine zweite Nennung nicht erweitert, sondern die erste gewinnt. Ergänze deine bestehende Policy also innerhalb der vorhandenen script-src- und connect-src-Listen, statt neue anzuhängen.

Direktive Warum nicht
style-src mit unserem Host Das Widget rendert in einem Shadow Root und übernimmt sein Stylesheet über CSSStyleSheet, nicht über ein <style>-Tag. Eine Policy ohne 'unsafe-inline' funktioniert weiter.
font-src Das Widget lädt keine eigenen Schriften. Es erbt den Font-Stack deines Shops.
frame-src Kein iframe, nirgends.
img-src mit unserem Host Produktbilder liegen weiterhin auf deinem Shop beziehungsweise deinem CDN. Wir spiegeln keine Bilddateien.
'unsafe-eval' Kein eval, kein new Function im Loader und im Widget.
  1. Storefront öffnen, Entwicklerkonsole aufmachen, ins Suchfeld klicken.
  2. Kommt eine Meldung der Form Refused to load the script … because it violates the following Content Security Policy directive, fehlt der script-src-Eintrag.
  3. Kommt Refused to connect to …, fehlt connect-src.
  4. Kommt gar nichts und Ergebnisse erscheinen: passt.

Ohne die Einträge scheitert der Ladevorgang still im Sinne deiner Kunden: der Loader gibt nach drei Sekunden auf, und die native Shopware-Suche übernimmt. Der Shop bleibt also benutzbar — aber Antares kommt nie zum Zug, und das Panel zeigt keine Suchen an. Eine leere Suchstatistik bei laufendem Shop ist fast immer eine CSP.

Der Loader wird bewusst ohne integrity-Attribut eingebunden. Er ist die Ausfallsicherung: er wird gelegentlich aktualisiert, und ein SRI-Hash, der nach einem Update nicht mehr passt, würde die Suche in deinem Shop abschalten, statt sie zu schützen. Der Loader lädt seinerseits nur von {HOSTS.cdn}, und diese Herkunft ist über script-src erzwungen.