
Ein leistungsstarker Compiler/Obfuscator für Websites zur Optimierung oder zum Schutz von geistigem Eigentum.

WebSafeCompiler (WSC) ist ein fortschrittliches Dienstprogramm (Website-Compiler), das für die Optimierung, Minifizierung und Obfuskation (falls benötigt) von Webanwendungen und Websites mit Node.js entwickelt wurde. Es verbessert Ihre Web-Assets, indem es Dateigrößen reduziert oder dauerhaften Schutz gegen Reverse Engineering bietet, um sicherzustellen, dass Ihr Code bereit für die Bereitstellung und sicher ist.
[!NOTE]
Geeignet für *.github.io-Seiten
Der Compiler ist monolithisch: Die gesamte Implementierung befindet sich in source/wsc.js. Regressionstests befinden sich separat in tests/.
Um das volle Potenzial von WebSafeCompiler auszuschöpfen, führen Sie den folgenden Befehl in Ihrem Terminal aus:
node wsc.js <input_dir> <output_dir> [--map] [--smart] [--drm]
<input_dir>: Verzeichnis, das die zu verarbeitenden Quelldateien enthält.<output_dir>: Verzeichnis, in dem die optimierten und obfuskierten Dateien ausgegeben werden.-m, --map: Erstellt eine sitemap.xml im Ausgabeverzeichnis für bessere SEO-s, --smart: Erkennt automatisch minifizierte Dateien und überspringt sie. Dies umfasst JS- und CSS-Dateien.-d, --drm: Aktiviert die Code-Obfuskierung (DRM-Schutz), um Ihren Quellcode vor unbefugter Analyse zu schützen.
class-, id- und title-Werte. Vorhandene Klassennamen und Attribute bleiben erhalten. Erkannte Selektor- und DOM-Inspektionsabhängigkeiten begrenzen das Rauschen mit einer Konsolenwarnung.-h, --help: Zeigt die Hilfemeldung mit detaillierten Nutzungshinweisen an.-v, --version: Gibt die aktuelle Version von WebSafeCompiler aus.node wsc.js "/path/to/source" "/path/to/output" --drm --smart
Dieser Befehl verarbeitet alle Dateien im angegebenen Quellverzeichnis, optimiert sie und schützt – falls das Obfuskierungs-Flag aktiviert ist – den Code vor unbefugtem Zugriff oder Manipulation. Die Ausgabedateien sind für die Bereitstellung in Ihrer Webumgebung bereit.

WebSafeCompiler verwendet die folgenden Bibliotheken für die Arbeit mit JavaScript-Codes:
Um mit WebSafeCompiler zu beginnen, müssen Sie Node.js auf Ihrem System installiert haben. Befolgen Sie diese Schritte, um die erforderlichen Pakete zu installieren:
Node.js installieren: Laden Sie Node.js von der offiziellen Node.js-Website herunter und installieren Sie es. Befolgen Sie die Installationsanweisungen für Ihr Betriebssystem.
Repository klonen: Falls noch nicht geschehen, klonen Sie das Repository auf Ihren lokalen Rechner:
git clone <repository-url>
cd <repository-directory>/source
Abhängigkeiten installieren: Navigieren Sie zum Projektverzeichnis und installieren Sie die erforderlichen npm-Pakete:
npm install
Fertig! Sie können WSC verwenden.
WSC minifiziert den Abstand von HTML-Tags/Attributen und entfernt gewöhnliche HTML-Kommentare, während es zitierte Werte, Text-Leerraum, rohe Script-/Style-Inhalte, bedingte Kommentare und Framework-Marker beibehält. Eine erkannte Quell-/Kommentar-Inspektion deaktiviert diese Markup-Bearbeitungen mit einer Warnung. JavaScript verwendet Local-Name-Mangling und fünf Komprimierungsdurchläufe, während öffentliche Globals und Funktionsnamen erhalten bleiben. DRM behält Control-Flow-Flattening, Dead-Code-Injection und vollständige String-Array-Abdeckung mit Base64-Kodierung bei. CSS wird geparst und minifiziert; nicht unterstütztes JS und CSS mit Parser-Warnungen bleiben unverändert mit einer Warnung. Nicht-UTF-8-Assets werden ohne Konvertierung kopiert. Lokale SRI-Assets werden vor HTML verarbeitet, dann werden SHA-256/384/512-Metadaten aus den endgültigen Bytes in Script-, Stylesheet-, Preload- und Template-Referenzen neu berechnet. Übereinstimmende External-Script-Hashes in zugänglichen CSP-Richtlinien werden ebenfalls aktualisiert. Gemeinsam genutzte Assets bleiben unverändert mit einer DRM-Warnung, wenn eine verweisende Seite eine nicht verfügbare CSP hat oder nicht sicher als UTF-8 neu geschrieben werden kann. Ungültige SRI-Metadaten bleiben blockiert; extern gehostete Assets werden nicht neu geschrieben.
DRM fügt vorhandenen class-Attributen zufällige Klassen und um jedes echte Attribut geeigneter gewöhnlicher HTML-Tags zwei zufällige inerte Attribute hinzu. Zufällige Namen werden gegen HTML-, CSS- und JS-Quelltext geprüft. Klassen-Gleichheits-/Teilstring-Selektoren bewahren betroffene Klassenwerte; die AST-Analyse beschränkt die Klassen-/Attribut-Inspektion auf statisch identifizierte Elemente, unveränderliche Aliase und Observer-Subtrees, wobei jede Seite und ihre lokalen JS/CSS-Abhängigkeiten verwendet werden. Unbeteiligte Elemente erhalten weiterhin Rauschen. Unbekannte Empfänger, Laufzeit-Selektoren, Destrukturierung und unaufgelöste Observer verwenden einen konservativen Fallback und geben Warnungen aus. Script-/Style-/Meta-/Noscript-Tags, Custom Elements und fremde SVG-/MathML-Knoten erhalten keine Junk-Attribute. Diese Schutzmaßnahmen decken bekannte Abhängigkeiten ab; dynamisch berechnete Selektoren oder Reflexion können nicht immer statisch abgeleitet werden.
Im DRM-Modus extrahiert WSC automatisch geeigneten Inline-JavaScript in obfuskierte wsc-inline-*.js-Dateien neben jedem HTML-Dokument, wenn eine unterstützte CSP-Konfiguration gilt: Root-_headers, Root-vercel.json (headers-Regeln) oder ein HTML-CSP-Meta-Tag. Es fügt 'self' zu script-src-elem in der Ausgaberichtlinie hinzu, wobei andere Quellberechtigungen, script-src-Regeln für Event-Handler und nicht zusammenhängende Direktiven erhalten bleiben. Dies erweitert absichtlich die Skriptberechtigungen auf Same-Origin-Dateien. Stellen Sie das ausgegebene JavaScript und die Header-Konfiguration zusammen mit dem HTML bereit. Nonces bleiben unverändert; generierte Dateien enthalten SRI-Hashes. Literale Routen und *-Wildcards werden unterstützt.