Content-Security-Policy
This content is not available in your language yet.
Wenn dein Shop ohne Content-Security-Policy läuft — was bei Shopware-Standardinstallationen die Regel ist — kannst du diese Seite überspringen. Läuft eine strikte Policy, fehlen Antares genau zwei Einträge.
Die zwei Direktiven
Abschnitt betitelt „Die zwei Direktiven“| Direktive | Ergänzung | Wofür |
|---|---|---|
script-src | https://cdn.antares.commergy.de | Lädt den 2-kB-Loader und, wenn ein Kunde das Suchfeld anfasst, das Widget-Bundle. |
connect-src | https://api.antares.commergy.de | Die Suchanfragen selbst und die Klick-Events für die Analytics. |
Header zum Kopieren
Abschnitt betitelt „Header zum Kopieren“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;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.
Was ausdrücklich nicht nötig ist
Abschnitt betitelt „Was ausdrücklich nicht nötig ist“| 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. |
Prüfen, ob die Policy passt
Abschnitt betitelt „Prüfen, ob die Policy passt“- Storefront öffnen, Entwicklerkonsole aufmachen, ins Suchfeld klicken.
- Kommt eine Meldung der Form
Refused to load the script … because it violates the following Content Security Policy directive, fehlt derscript-src-Eintrag. - Kommt
Refused to connect to …, fehltconnect-src. - 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.
Subresource Integrity
Abschnitt betitelt „Subresource Integrity“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.