747 Stimmen

Wie kann ich JavaScript verschleiern (schützen)?

Ich möchte eine JavaScript-Anwendung erstellen, die nicht quelloffen ist, und daher möchte ich lernen, wie ich meinen JS-Code verschleiern kann? Ist das möglich?

22 Stimmen

Das Argument, man dürfe nichts verschleiern, scheint mir nicht stichhaltig zu sein. Es sei denn, Sie glauben wirklich, dass Ihre Benutzer Fehler beheben/berichten könnten, dann sollten Sie es tun. Es kann die Ladezeiten durch Minifying verringern. Es wird niemals einen wirklich engagierten Hacker aufhalten, aber es wird ihn/sie verlangsamen und es wird halbherzige Hackversuche verhindern. Es ist sehr einfach zu machen und es gibt viele Tools (siehe andere Antworten), ich würde sagen, mach es auf jeden Fall, da es meistens nur Vorteile bringt, aber erwarte nicht, dass es wirkliche Sicherheit bringt oder jemanden davon abhält, deinen Code zu kopieren, wenn er es wirklich will. Die einzige Möglichkeit, dies zu tun, ist, den Code serverseitig zu halten und Ajax zu verwenden.

0 Stimmen

Der beste Javascript Obfuskator So funktioniert es bei mir. Es wird sogar nicht von js beautifier dekodiert. ;)

1 Stimmen

Die meisten der hier erwähnten Obfuskatoren können einfach durch die Einstellung window.eval = console.log.bind(console); bevor Sie das Skript ausführen. Im besten Fall ist das Ergebnis nach der Ausführung des Skripts dasselbe wie bei der Ausführung eines Minifizierers für das Original, daher sehe ich keine wirklichen Vorteile der Verwendung eines speziellen Obfuskators gegenüber der Verwendung eines Minifizierers. Zumal obfuskierter Code in der Regel aufgeblähter (und langsamer zu laden) ist als minifizierter Code.

11voto

dbr Punkte 158949

Eine nicht auf Open-Source-Javascript basierende Anwendung ist ziemlich dumm. Javascript ist eine clientseitige interpretierte Sprache. Obfuscation ist kein großer Schutz.

Die JS-Verschleierung dient in der Regel dazu, die Größe des Skripts zu verringern, und nicht dazu, es zu "schützen". Wenn Sie in einer Situation sind, in der Sie nicht wollen, dass Ihr Code öffentlich ist, ist Javascript nicht die richtige Sprache

Es gibt viele Tools, aber die meisten tragen das Wort "Kompressor" (oder "Minifier") nicht ohne Grund in ihrem Namen.

10voto

Gustavo Rodrigues Punkte 3201

Sie können clientseitigen Code nicht sichern: Drücken Sie einfach F12 in Google Chrome, Javascript-Ausführung pausieren und Sie erhalten alle Zeichenfolgen, auch die verschlüsselten. Verschönern es und Variablen umbenennen und Sie erhalten fast den ursprünglichen Code.

Wenn Sie serverseitiges Javascript (z.B. NodeJS) schreiben und Angst davor haben, dass sich jemand in Ihren Server einhackt, und dem Hacker die Arbeit erschweren wollen, so dass Sie mehr Zeit haben, Ihren Zugang zurückzubekommen, dann verwenden Sie Javacript-Kompilierer :

Sie müssen Closure Compiler auf Advanced Compilation verwenden, da es das einzige Tool ist, das alle Ihre Variablen umbenennt, auch wenn diese in mehreren Dateien/Modulen verwendet werden. Aber es hat ein Problem: Es funktioniert nur, wenn Sie in den Kodierungsstil .

0 Stimmen

Das Kompilieren von Abschlüssen ist keine Verschleierung von Code :P

1 Stimmen

Es ist nicht dafür gemacht, aber es funktioniert gut dabei: es fügt nicht zusätzlichen Code wie einige Compiler (die in der Regel rückgängig gemacht werden können, die die Werkzeuge, die ich zitiert habe), sondern ändert es auf ungewöhnliche Weise, einige sogar schwer rückgängig zu machen, und entfernen Sie ungenutzten Code, die im Vergleich zu echten Obfuscation ist gut für die Leistung.

1 Stimmen

Das ist keine gute Idee. Das Mining/Kompilieren von Code auf der Serverseite kann zu Sicherheitsproblemen führen, wenn der Minifier einen Fehler aufweist: zyan.scripts.mit.edu/blog/backdooring-js

5voto

Ich würde vorschlagen, zunächst minify mit etwas wie YUI Compressor, und dann konvertieren alle String und Zahlen zu HEX-Werte mit etwas wie http://www.javascriptobfuscator.com/

Damit würde der Code nahezu unmöglich zu verstehen sein, und ich denke, dass ein Hacker in diesem Stadium mehr Zeit brauchen wird, um Ihren Code nachzustellen, als wenn er ihn von Grund auf neu schreiben würde. Umschreiben und Klonen ist das, was man eigentlich nicht verhindern kann. Schließlich sind wir freie Menschen!

5voto

smdrager Punkte 7057

Dean Edwards Packer ist ein hervorragender Obfuskator, obwohl er in erster Linie den Code verschleiert und nicht irgendwelche Zeichenkettenelemente, die Sie in Ihrem Code haben.

Siehe: Online Javascript Komprimierungstool und wählen Sie Packer (Dean Edwards) aus der Dropdown-Liste

0 Stimmen

Es ist sinnlos. Es kann leicht ausgepackt werden mit jsbeautifier.org

5voto

Jerczu Punkte 75

Probieren Sie dieses Tool aus Javascript Obfuscator

Ich habe es auf meinem HTML5-Spiel nicht nur es reduziert es Größe von 950KB auf 150, sondern auch den Quellcode unlesbar Schließung Compiler und Minifier sind reversibel Ich persönlich weiß nicht, wie man diese Verschleierung umkehren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X