TL;DR
- Polyfill.io-Angriff 2024: 384.773 Hosts kompromittiert — viele in Deutschland
- Magecart-Angriff alle 16 Minuten (RiskIQ)
- 74 % aller webbasierten Datenlecks sind Formjacking
- Alte Script-Tags von deinstallierten Apps = perfektes Einfallstor
- Shopify blockiert ScriptTags schrittweise bis 26. August 2026 — alte Tags produzieren dann 404-Fehler
Warum Shopify-Shops besonders anfällig sind
Jede deinstallierte App hinterlässt Script-Tags im Theme. Bei manchen Händlern sind das nach Jahren Dutzende tote <script src="//cdn.xyz.com/...">-Einträge. Jeder davon ist ein aktiver Supply-Chain-Vector — wenn die CDN-Domain kompromittiert wird, lädt dein Shop schädliches JavaScript.
Der Polyfill.io-Fall — was wirklich passiert ist
Im Juni 2024 wurde die Domain polyfill.io von einem chinesischen Unternehmen aufgekauft, das ein Jahr später die CDN-Infrastruktur manipulierte. Die Domain lieferte an 384.773 Hosts schädliches JavaScript aus (Censys-Analyse) — primär in Deutschland.
Betroffen waren u. a. Hulu, Mercedes-Benz, Warner Bros sowie tausende kleinere E-Commerce-Shops. Viele davon hatten Polyfill.io noch aus alten Shopify-App-Integrationen im Theme, die längst deinstalliert waren.
Die bittere Wahrheit: Niemand hat den Angriff bemerkt, bis ein Security-Forscher zufällig den Traffic analysierte. Der bösartige Code lief wochenlang unbemerkt.
Die häufigsten Angriffsvektoren bei Shopify-Shops
1. Formjacking (Magecart-Attacken)
Angreifer manipulieren ein externes Script, das auf deiner Checkout-Seite läuft. Das Script liest Kreditkarten-Daten mit, während der Kunde sie eingibt, und schickt sie parallel an die Angreifer-Server. Der Shopify-Admin sieht keine Unregelmäßigkeit — die Bestellung geht normal durch.
2. CDN-Übernahme
Wie bei Polyfill.io: Angreifer kaufen eine vergessene CDN-Domain, auf die dein Theme noch verweist, und liefern manipulierte JavaScript aus. Dein Shop wird zum Angreifer, ohne dass du etwas änderst.
3. Verlassene Apps
Viele Shopify-Apps werden von ihren Entwicklern aufgegeben (kein Update, kein Support, verkauft). Die Script-Tags laufen aber weiter — bis zur nächsten Kompromittierung der CDN-Infrastruktur.
4. Skript-Injection via App
Selbst eine legitime App, die Script-Tags ins Theme schreibt, kann bei Sicherheitslücke des App-Betreibers missbraucht werden. Die Script-Tag-Funktion selbst ist oft der schwächste Link.
Shopify reagiert (zu spät, aber immerhin)
Ab 1. Februar 2025 hat Shopify die Erstellung neuer ScriptTags deprecated. Legacy-ScriptTags laufen aber weiter:
- 28. August 2025: Shopify Plus — Blockierung aktiv
- 26. August 2026: Non-Plus — Blockierung aktiv
Nach diesen Deadlines produzieren alte Script-Tags 404-Fehler. Das ist einerseits gut (Angriffsfläche schrumpft), andererseits aber ein Problem für Shops, die die Tags nicht vorher bereinigt haben — plötzlich brechen Theme-Renders.
Wie du dich schützt
1. Inventur aller externen Scripts
Öffne deinen Shop in Chrome DevTools → Network-Tab → filtere nach .js. Gehe jeden externen Script-Request durch und prüfe die Quelle. Alles, was du nicht aktiv nutzt, muss weg.
2. Content Security Policy (CSP)
Eine CSP-Header-Regel, die nur bestimmte Domains erlaubt, verhindert, dass unbekannte Skript-Quellen laden. Shopify-Setup: Theme-Header Content-Security-Policy: script-src 'self' cdn.shopify.com. Restriktiv, aber effektiv.
Achtung: Bei App-Installation muss die CSP ggf. erweitert werden.
3. Subresource Integrity (SRI)
Für externe Scripts das integrity-Attribut setzen. Wenn der Server ein anderes Script liefert als erwartet, lehnt der Browser es ab:
<script
src="https://cdn.example.com/widget.js"
integrity="sha384-..."
crossorigin="anonymous">
</script>
Problem: Die meisten Shopify-Apps setzen kein SRI, weil sie ihre Scripts regelmäßig ändern.
4. Alte Scripts entfernen
Das ist der effektivste Schutz. GhostCode scannt dein Theme auf alle externen Script-Tags + identifiziert die zu deinstallierten Apps — und entfernt sie auf Wunsch.
5. Shopify Web-Pixel statt Script-Tags
Seit 2024 können Apps Web Pixel statt Script-Tags nutzen — die laufen in einer gesandboxten Umgebung. Bei neuen App-Installationen darauf achten.
Die Checkliste für heute
- DevTools-Network-Audit deiner Homepage
- Prüfe jeden externen Script-Request auf Notwendigkeit
- GhostCode-Scan für Ghost-Scripts
- CSP-Header konfigurieren (mindestens
self) - SRI für bekannte externe Scripts
- Apps, die Script-Tags nutzen, auf Alternative (Web-Pixel, Theme-Extension) prüfen
Weiterführend: Ghost Code entfernen · settings_data.json bereinigen · Shopify Theme aufräumen