Source Maps in der Produktion leaken deinen Quellcode
Source Maps (.js.map-Dateien) erlauben Browsern, minifizierten Code auf deinen originalen Quellcode zurückzuführen. Werden sie in der Produktion öffentlich ausgeliefert, kann jeder deine unminifizierte Codebasis samt Kommentaren rekonstruieren.
Was es ist
Build-Tools erzeugen Source Maps als Debugging-Hilfe. Wenn das minifizierte Bundle eine .map-Datei referenziert, die ebenfalls deployt ist, kann der Browser — und jeder — den originalen Quellcode herunterladen.
Das legt interne Logik, Benennungen, TODO-Kommentare und manchmal hartkodierte Werte offen, die verraten, wie dein Backend und deine Authentifizierung funktionieren.
Warum es wichtig ist
Lesbarer Quellcode macht es für Angreifer viel einfacher, Logikfehler, versteckte Endpoints und Validierung zu finden, die nur im Client läuft.
Er kann außerdem Secrets oder interne URLs leaken, die man im Bundle für 'versteckt' hielt.
So behebst du es
Schalte Browser-Source-Maps für Produktions-Builds aus.
// next.config.js
module.exports = { productionBrowserSourceMaps: false };Brauchst du Source Maps für das Error-Monitoring, lade sie zu deinem Error-Tracker hoch (z. B. Sentry) und entferne sie aus dem öffentlichen Build, statt sie auszuliefern.
Rufe nach dem Deploy eine der .map-URLs deines Bundles auf. Sie sollte 404 zurückgeben, nicht die Source-Map im JSON-Format.
FAQ
Sind Source Maps immer schlecht?
Nein — zum Debuggen sind sie unschätzbar wertvoll. Das Problem ist, sie in der Produktion öffentlich auszuliefern. Behalte sie stattdessen in deiner Monitoring-Pipeline.
Schützt Minifizierung meinen Code?
Nur oberflächlich. Mit einer öffentlichen Source Map wird die Minifizierung vollständig zu lesbarem Quellcode zurückverwandelt.
Ist deine App betroffen?
AppSafe prüft dies und Dutzende weitere Probleme in einem kostenlosen Scan.
Meine App gratis scannenVerwandte Guides
API-Keys, die in clientseitigem JavaScript offengelegt sind
Alles in deinem Bundle ist öffentlich. Behandle es entsprechend.
Offengelegte .env-Dateien: wie Angreifer deine Secrets finden
Eine einzige erreichbare .env kann deinen gesamten Stack preisgeben.
Content-Security-Policy (CSP): was sie ist und wie du eine hinzufügst
Der Header, der verhindert, dass eingeschleuste Skripte ausgeführt werden.