Mit der wachsenden Bedeutung von JavaScript wächst auch die Notwendigkeit, Ihr geistiges Eigentum zu schützen. In diesem Tutorial werfen wir einen Blick auf JScrambler, ein Werkzeug, mit dem Sie Ihren Code vor Konkurrenten und Hackern schützen können.
JScrambler ist eine Cloud-basierte Unternehmenslösung zum Schutz Ihres JavaScript-Codes in Anwendungen, die für das Desktop-Web, HTML5, Mobile, Node.js-Apps und Web-Gaming bestimmt sind.
Während die meisten JavaScript-Schutzmaßnahmen selten über einfache Umwandlungen regulärer Ausdrücke hinausgehen, ist JScrambler eine JavaScript-Interpreter- und Parsing-Engine, die einen abstrakten Syntaxbaum erstellt, der Ihren Quellcode darstellt. Daher kann JScrambler HTML5 und JavaScript so sichern, dass der geschützte Code mit der gleichen Funktionalität wie die Quelle ausgeführt wird.
Der Ansatz von JScrambler erfordert gründliche Tests und erweiterte Quellcode-Analysen, um Präzisionsoptimierungen zu erstellen, die 1) unter begrenzten Ressourcen gut funktionieren, 2) die Leistung nicht beeinträchtigen und 3) in einer Umgebung einwandfrei funktionieren, die zu 100% mit allen Browsern und Plattformen kompatibel ist.
Indem Sie JScrambler zu Ihrem Entwicklungsprozess hinzufügen, werden Ihr geistiges Eigentum geschützt und eine Reihe problematischer Szenarien vermieden:
In diesem Lernprogramm werde ich Sie durch die Vorteile des Schutzes von Code mit JScrambler führen und Ihnen die Dienste und die verschiedenen Optionen vorstellen, die Ihnen zur Verfügung stehen. Neben dem Cloud-basierten Service können Sie JScrambler über seine API auch in Ihre Entwicklungsumgebung integrieren. Wenn Sie zusätzliche Leistung und Sicherheit benötigen, können Sie die eigenständige Unternehmenslösung hosten.
JScrambler funktioniert am besten mit den folgenden Anwendungsumgebungen:
Mit der Verbreitung von Node.js kann JavaScript außerhalb des Kontextes eines Webbrowsers verwendet werden, sowohl auf Server- als auch auf Clientseite. Es kann auch außerhalb des Browsers erstellt und später im Browser verpackt und ausgeführt werden. Diese Flexibilität und Eleganz hat sicherlich zu seiner Beliebtheit beigetragen.
Unabhängig davon, ob Sie an einer über NPM verteilten Bibliothek, einem eigenständigen Client oder einer Browseranwendung arbeiten - und wie bei normalen, mit JavaScript entwickelten Webanwendungen -, wird sie immer noch in Klartext auf dem Endbenutzergerät gesendet oder installiert. Wenn Sie gemeinsam genutzte oder gehostete Server verwenden, machen Sie sich möglicherweise Sorgen, dass Ihr Code in Klartext gespeichert wird.
Offensichtlich kann der Code-Schutz von JScrambler für Unternehmen besonders wertvoll sein, wenn sie ihr geistiges Eigentum umfassend in Node.js erstellen.
Mit JScrambler können Sie die Logik Ihrer Anwendung vor potenziellen Angreifern verbergen, z. B. welche Informationen vom Benutzer erfasst werden, wie diese auf der Clientseite verarbeitet werden und wie sie an die Serverseite gesendet werden. Ihre Verschleierung führt zu einem gewissen Grad an Zufälligkeit, mit dem Sie Code-Morphing-Techniken erkunden können. Diese können dazu beitragen, Angriffsautomatisierung auszuschließen.
JScrambler kann Ihre clientseitigen JavaScript-Algorithmen vor Mitbewerbern verbergen, die ihn möglicherweise analysieren und stehlen möchten. Ihre Entwicklungs- und Produktionsversionen Ihres Codes müssen jedoch nicht gleich sein. Sie können Ihren ungeschützten Code testen und debuggen und JScrambler verwenden, um Schutz ausschließlich im Test und in der Produktion bereitzustellen.
Wenn Sie JavaScript-Anwendungen entwickeln und verkaufen, sei es Standard-JavaScript, mobile Webanwendungen oder HTML5, sollten Sie verhindern, dass jemand, der nicht bezahlt hat oder dessen Lizenz abgelaufen ist, Ihren Code ausführt. Mit JScrambler können Sie Ihren Code an eine vordefinierte Liste von Domänen sperren und Ablaufdaten festlegen. Zum Beispiel können Sie Ihren Klienten jetzt ausbaufähige Demos zur Verfügung stellen, ohne dass Sie Angst vor Code oder Verlust von Clients haben.
JScrambler bietet Optimierungstransformationen, durch die der Code kleiner und schneller geladen werden kann. Diese Umwandlungen sind speziell auf Ihren Anwendungstyp und Ihre Leistungsanforderungen abgestimmt. Beispielsweise können mobile Webanwendungen nicht denselben Verschleierungsgrad übernehmen wie eine Standard-JavaScript-Anwendung, die auf einer Desktop-CPU ausgeführt wird.
Mit dem Ansatz von JScrambler können Sie Ihr Produkt schützen und gleichzeitig einfach und kostengünstig warten. Ihr Entwicklungsprozess kann sich natürlich weiterentwickeln, während Sicherheits- und Anti-Debugging-Methoden auf Unternehmensebene integriert werden. Hier sind einige der Funktionen, die JScrambler bietet:
JScrambler kann auf verschiedene Arten verwendet werden. Sie können:
JavaScript wird vom Server zum Client übertragen, bevor es vom Browser interpretiert wird. Durch die Reduzierung der rohen Byte-Größe wird daher die Ladezeit verbessert, was zu einer schnelleren Antwort Ihrer Anwendung beiträgt. Bei Verwendung von Verschleierungstechniken tragen außerdem Größenkürzel-Transformationsumwandlungen zur logischen Verschleierung bei und verringern die Größe des Codes, der aufgrund der Verwendung dieser Transformationen möglicherweise gewachsen ist.
JScrambler kann die Rechenleistung optimieren. Natürlich bietet diese isolierte Technik keinen Schutz für den Code.
Quellcode-Verschleierung besteht in der Transformation des Quellcodes, um ihn verständlicher zu machen, ohne die ursprüngliche Funktionalität zu ändern. Der technologische Ansatz von JScrambler sichert HTML5 und JavaScript so ab, dass der geschützte Code mit der gleichen Funktionalität wie die Quelle ausgeführt wird.
Mit JScrambler können Sie Ihr JavaScript auf eine bestimmte Domäne oder Liste von Domänen beschränken, z. mywebsite.com. Ihr geschützter Code funktioniert nicht in anderen Domänen als den von Ihnen ausgewählten. Sie können den Code auch auf ein bestimmtes Ablaufdatum für auslaufende Demos oder Lizenzen oder auf bestimmte Browser und Betriebssysteme beschränken.
Eine der Hauptanwendungen von Code-Verschleierung besteht darin, das geistige Eigentum Ihrer Software zu schützen, indem es deren Logik verbirgt, anstatt nur zu versuchen, eine Softwarelizenz zu erzwingen und sich auf legale Lösungen zu verlassen. In Verbindung mit Anti-Debugging-Techniken verwendete Verschleierung hilft, Versuche beim Reverse Engineering und bei der Wiederverwendung von Code zu unterbinden, meistens, weil die Wartbarkeit und Wiederverwendbarkeit des Codes für diesen Zweck beeinträchtigt werden.
JScrambler bietet Selbstschutzfunktionen für HTML5- und JavaScript-Anwendungen. Ihre Anwendung kann sich aktiv schützen, indem sie Quellcode-Änderungsversuche und Debugging-Aktivitäten erkennt und den Angriff absichtlich zusammenbricht. Und um diese Verteidigung auszulösen, genügt ein einzelner Charakter, der geändert wird.
Anti-Debugging soll den Prozess des Reverse Engineering und des Debugging verhindern. Es ist ideal, um die (dynamische) Codeanalyse zu behindern, wodurch der Versuch einer De-Verschleierung schwieriger wird.
Die Manipulation von Manipulationen soll Änderungen an Ihrem Code verhindern, indem Sie (z. B.) Techniken verwenden, die das Verhalten Ihres Codes ändern oder ihn brechen, wenn ein Manipulationsversuch entdeckt wird.
Hier ist eine Demonstration von JScramblers Anti-Manipulationen.
Das JScrambler-Hilfezentrum bietet detaillierte Beschreibungen der einzelnen Funktionen und Transformationen, z. Verschleierungs- und Optimierungsansätze:
Die JScrambler-Schnittstelle ist derzeit in sechs Sprachen verfügbar:
JScrambler stellt einen kostenlosen Plan zur Verfügung, der Minifizierung und Optimierung bietet. Der Support für größere Projekte und breitere Umgebungen beginnt bei 35 US-Dollar pro Monat, wenn dies jährlich in Rechnung gestellt wird:
Die Anmeldung bei JScrambler ist einfach:
Sobald Sie registriert sind, wird Ihnen das angezeigt Neues Projekt Bildschirm. JScrambler enthält ein statisches Demonstrations-Webprojekt.
Mit jedem neuen Projekt können Sie JScrambler anweisen, einen seiner Anwendungsmodi zu verwenden:
Standart Modus: Standardmäßiges Schutz- und Optimierungsverhalten von JScrambler. Genug für die meisten JavaScript-Anwendungen. Richtet HTML5-Funktionen nicht vollständig aus und verwaltet die mobile Leistung nicht.
Mobile Kompatibilität: Transformationen werden unter Berücksichtigung der Einschränkungen und Anforderungen mobiler Geräte angewendet.
HTML5-Kompatibilität: JScrambler schützt und optimiert Ihre HTML5- und Web-Gaming-Anwendungen durch Ausrichtung auf die neuen HTML5-Funktionen.
Node.js-Kompatibilität: JScrambler schützt und optimiert Ihre Node.js-Anwendungen.
Dann müssen Sie eine oder mehrere Schutz- und Optimierungsvorlagen angeben. Erweiterte Pläne können Kombinationen auswählen. Sie können auch Vorlagen für Ihr Projekt einrichten, die bestimmte Transformationen auswählen:
Die Benutzeroberfläche bietet hilfreiche Erklärungen für jede Option:
Wenn Sie bestimmte Umwandlungen auswählen, müssen Sie möglicherweise Konfigurationseinstellungen angeben. So stellen Sie beispielsweise eine Domänenliste für das Sperren von Domänen bereit:
Nachdem Sie die Transformationen von JScrambler angewendet haben, kehren Sie zur Projekte Speisekarte. Hier können Sie Ihren resultierenden Code herunterladen:
Hier ist ein Vergleich der JavaScript-Codes in meinem Projekt vor und nach meinen Transformationen nebeneinander:
Die statische Verwendung von JScrambler ist natürlich nicht für jedes Entwicklerteam sinnvoll. Die JScrambler-API bietet Optionen für die fortlaufende Integration.
Mit der API können Sie die Bereitstellung aller Dateien in Ihrem Projekt automatisieren, indem Sie einen einfachen Befehl ausführen.
Die API bietet eine einfache REST-Schnittstelle, dh Sie müssen nur einige HTTP-Anforderungen implementieren, um sie verwenden zu können. Beispiele finden Sie im JScrambler API-Dokumentationscenter. JScrambler bietet Client-Stubs für PHP, Java, Node.js, Atom, Grunt, Gulp und Python. Besuchen Sie die vollständige Liste der Download-Clients.
Unabhängig davon, ob Sie Ihre Anwendung mithilfe eines Befehlszeilenskripts oder eines Task-Läufers erstellen, ist es sehr einfach, JScrambler in Ihren vorhandenen Gebäudeprozess zu integrieren.
JScrambler ist bereits in alle wichtigen Task-Läufer integriert. Wenn dies für Sie nicht funktioniert, gibt es eine JScrambler-API-CLI-Programmdatei, die Sie über Ihre Skripts oder Ihre bevorzugte IDE aufrufen können.
Darüber hinaus können Sie mit der API die kontinuierliche JScrambler-Transformation in Ihren Entwicklungsprozess integrieren.
Hier ein Beispiel für Code, den Sie mit PHP zum Hochladen von Code für JScrambler verwenden würden:
required_once 'jscrambler.php'; $ accessKey = 'YOUR_ACCESS_KEY'; $ secretKey = 'YOUR_SECRET_KEY'; $ apiHostname = 'api.jscrambler.com'; $ port = '443'; $ jscrambler = neuer Jscrambler ($ accessKey, $ secretKey, $ apiHostname, $ port); $ response = $ jscrambler-> post ('/ code.json', array ('files' => array ('index.html', 'script.js'), 'domain_lock' => 'jscrambler.com', ' expiration_date '=>' 2099/12/31 '));
Hier ist ein Beispiel für das JSON-Paket, das JScrambler zurückgeben würde:
"id": "401c600215aab40ea4709a3a0075ef196000cdf0", "erweiterung": "zip", "receive_at": "2012-01-31 18:50:57", "sources": ["id": "a3b85573d493d803537555f48a1a7a8aa8cfbb ":" html "," Dateiname ":" index.html "," size ": 125025, " id ":" 091306a8d92c5f8ad61bbfd134367bf5961be436 "," extension ":" js "," Dateiname ":" script.js ", "Größe": 113235]
Wenn Sie für ein großes Unternehmen oder ein Unternehmen mit hohen Sicherheits- und geistigen Eigentumsanforderungen arbeiten, benötigen Sie möglicherweise einen sichereren Zugriff auf die Dienste von JScrambler.
JScrambler Enterprise ist eine virtuelle Appliance, die Sie herunterladen und in Ihrer eigenen Infrastruktur ausführen. Das bedeutet, dass Sie niemals Ihren Code übertragen müssen. Es garantiert außerdem 100% Verfügbarkeit und höchste Priorität.
JScrambler ist ein einfach zu bedienendes Produkt. Hier ein kurzer Rückblick auf das, was wir behandelt haben:
Ich hoffe, Sie haben diese Übersicht über die Fähigkeiten von JScrambler interessant und nützlich gefunden.
Wenn Sie mehr von mir sehen möchten, können Sie meine anderen Tuts + Tutorials auf meiner Instructor-Seite durchsuchen oder mir auf Twitter @reifman folgen.