JavaScript-Obfuscator
Obfuskation erhöht die Kosten für das Lesen deines JavaScript-Quellcodes, nicht absolut (keine Front-End-Obfuskation ist wasserdicht), aber genug, um eine oberflächliche Inspektion abzuschrecken und automatisiertes Scraping zu verlangsamen. Dieses Tool wendet String-Array-Codierung, Identifier-Mangling, Flusskontroll-Glättung und optionale Injektion von totem Code an, wobei jede Option je nach gewünschter Aggressivität auswählbar ist.
Wie man JavaScript obfuskiert
-
1
Füge den Quellcode ein
Jedes gültige JS. Wenn es auf spezifische globale Eigenschaftsnamen einer Hostseite angewiesen ist, setze diese als reserviert.
-
2
Wähle Techniken
String-Codierung (hex / base64), Identifier-Mangling, Flusskontroll-Glättung, Injektion von totem Code, selbstverteidigender Wrapper.
-
3
Wähle das Zielprofil
Browser (ES5-sicher, keine Node-APIs), Node.js (erlaubt `require`, `Buffer`), oder niedrig (hauptsächlich minifizieren).
-
4
Obfuskation
Das Tool gibt den transformierten Code mit einer Größenänderung aus. Aggressive Einstellungen können die Ausgabe 3-5x größer machen als die Quelle.
Techniken und was sie dich kosten
| Technik | Erhöht den Aufwand des Angreifers | Laufzeitkosten | Größenkosten |
|---|---|---|---|
| Umbenennung von Variablen | Niedrig | Vernachlässigbar | Kleiner (Minifizierungseffekt) |
| String-Array-Codierung | Mittel | Winzig (ein Lookup pro String) | +10-30% |
| Flusskontroll-Glättung | Hoch | Messbar (~2-5%) | +50-150% |
| Injektion von totem Code | Niedrig (Sicherheits-Theater) | Klein | +20-50% |
| Selbstverteidigender Wrapper | Mittel | Einmalige Überprüfung | +5-10% |
| Debug-Schutz | Mittel (erkennt DevTools) | Einmalige Überprüfung | +5% |
| VM / Virtualisierung (Premium) | Sehr hoch | Groß (5-20x) | +300-500% |
Was Obfuskation nicht schützen kann
- Geheimnisse. Jede Konstante in deinem Front-End-Quellcode ist lesbar, wenn man genug Zeit hat. API-Schlüssel, Auth-Geheimnisse, Preislogik, verlasse dich niemals auf Obfuskation, um diese zu verbergen. Verschiebe sie serverseitig.
- Algorithmen mit einem beobachtbaren Ergebnis. Wenn der Browser es ausführen kann, kann ein Angreifer mit einem Debugger jede Eingabe und Ausgabe beobachten. Obfuskation verlangsamt das; sie stoppt es nicht.
- Automatisiertes Scraping in großem Maßstab. Anti-Scraping hängt von Verhaltensdetektion (Fingerprinting, Ratenlimits, CAPTCHA) ab, nicht von Quell-Obfuskation.
Wann Obfuskation sinnvoll ist
- Anti-Manipulation bei eingebetteten SDKs (Lizenzierung, Ad-SDKs, Spiel-Clients).
- Die Kosten erhöhen für das mühelose Kopieren einer konkurrierenden Implementierung.
- Automatisierte Skriptklassifizierung erschweren für breit gefächerte Scraper.
Wann es kontraproduktiv ist
- Du hast bereits einen Bundler. Webpack + Terser im Produktionsmodus minifiziert und mangelt bereits lokale Variablen. Eine zweite Obfuskationspassage bringt dir wenig und erhöht die Bundle-Größe.
- Du optimierst für First-Paint / Core Web Vitals. Aggressive Obfuskation verdreifacht das Bundle; das schadet FCP und LCP.
- Du musst in der Produktion debuggen. Starke Obfuskation macht Sentry-Stack-Traces nahezu nutzlos ohne eine passende Source-Map, und das Versenden der Source-Map untergräbt die Obfuskation.
Häufige Fehler
- Obfuskation als gleichwertig mit Verschlüsselung behandeln. Das ist es nicht, es ist ein Geschwindigkeitsbumper.
- Die Source-Map zusammen mit dem obfuskierten Bundle in die Produktion schicken. Das neutralisiert die Obfuskation vollständig.
- Dritte-Bibliotheken, die du bereits von einem CDN geladen hast, obfuskieren. Du bekommst die Größenstrafe ohne jeglichen Gewinn.
Häufig gestellte Fragen
Nein. Obfuskation ist ein Geschwindigkeitsbumper, kein Schloss. Ein entschlossener Analyst mit einem Debugger wird die Logik wiederherstellen. Es erhöht die Kosten genug, um oberflächliche Inspektionen und die meisten automatisierten Scraper abzuschrecken, aber es ist keine Sicherheit.
Wenn du auf Eigenschaften dynamisch zugreifst (obj["field_name"], Object.keys(obj)), oder auf spezifische Funktions- / Klassennamen der Hostseite angewiesen bist, füge diese zur reservierten Liste hinzu. Ohne das kann die Umbenennung von Eigenschaften externe Integrationen brechen.
Bewahre den ursprünglichen Quellcode auf. Der Obfuskator ist eine einseitige Transformation; du kannst den Originalcode nicht genau aus der obfuskierten Ausgabe wiederherstellen, nur eine lesbare Annäherung.
Leichte Obfuskation fügt ~10-30% hinzu. Flusskontroll-Glättung plus String-Arrays fügt 50-150% hinzu. Die schwersten Einstellungen können die Größe verdreifachen. Überprüfe den Ausgabedatenzähler, bevor du versendest.
Verwandte Tools
ASCII-Tabelle Referenz
Vollständige ASCII-Tabelle von 0 bis 127 mit Dezimal-, Hex-, Oktal-, Binär- und numerischer HTML-Zeichenreferenz für jedes Zeichen, einschließlich Steuerzeichen wie NUL, LF und DEL.
HTML-Zeichenreferenz
Durchsuchbare Liste von HTML-Entitäten, ihren benannten und numerischen Codes sowie eine Ein-Klick-Kopie für Sonderzeichen und Symbole.
Farbrad-Explorer
Erforschen Sie das Farbrad interaktiv. Rotieren Sie Harmonien, vergleichen Sie HSL mit RYB, erkennen Sie komplementäre und triadische Paare in Echtzeit.
Referenz für Tastenkombinationen
Durchsuchen Sie dokumentierte Standardkürzel für VS Code, Chrome und Bash mit GNU Readline unter macOS, Windows und Linux.
Zufallsbuchstaben-Generator
Erzeugen Sie zufällige A-Z-Buchstaben. Wählen Sie Anzahl, Großschreibung, Kleinschreibung oder gemischte Schreibweise für Spiele, Aufgaben und Unterricht.
HTML-Formatter
Formatieren Sie HTML lokal im Browser mit zwei oder vier Leerzeichen Einrückung. HTML wird weder hochgeladen noch validiert.
Tool in anderen Sprachen verfügbar
- Trình làm rối mã JavaScript [VI]
- Obfuscator JavaScript [ID]
- Ofuscador de JavaScript [ES]
- เครื่องมือปิดบังโค้ด JavaScript [TH]
- JavaScript-obfuscator [NL]
- JavaScript 난독화 도구 [KO]
- Obfuskator JavaScript [PL]
- Ofuscador de JavaScript [PT]
- مُبهِّم JavaScript [AR]
- JavaScript-obfuskerare [SV]
- JavaScript難読化ツール [JA]
- Obfuscateur JavaScript [FR]
- Обфускатор JavaScript [RU]
- JavaScript Kod Gizleme Aracı [TR]
- JavaScript混淆器 [ZH]
- JavaScript Obfuscator [EN]
- Offuscatore JavaScript [IT]