Wie kann ich zu verschleiern (schützen) JavaScript?
Ich möchte eine JavaScript-Anwendung, die nicht open source, und damit will ich lernen, wie kann verschleiern mein JS code? Ist das möglich?
Ich wäre daran interessiert zu hören, der Grund, warum Sie versuchen, zu verschleiern-code, es könnte einige geben, die nötig Kontext zu geben, eine hilfreiche Antwort.
Der einzige Weg, um wirklich zu halten, etwas Geheimnis ist nicht senden Sie es an den client. Wenn Sie es nicht haben, Sie es nicht Lesen kann. Senden Sie verschlüsselt ist nur ärger bringen, in den Händen der wenigen Menschen, die eigentlich egal, und alle anderen nicht herumzustochern, auch wenn Sie Sie senden in der clear (c.f. DRM).
Das tool ist wirklich toll, Sie können es tun online-Verschleierung Ein weitere link für die Verschleierung
Verschleiern Sie Ihren code keine gute Idee. Es wird nur Unannehmlichkeiten für den rechtmäßigen Benutzer (zB. wenn Sie brauchen, um einen bug zu beheben), und nichts tun zu 'schützen' es von Menschen, die einen (finanziellen) Anreiz zum reverse Engineering. Es ist grundsätzlich nicht möglich um zu verhindern, dass reverse-engineering von Javascript-code.
Das argument, Sie nicht zu verschleiern scheint fehlerhaft zu mir. Es sei denn, Sie wirklich, dass Ihre Benutzer möglicherweise beheben/bugs, dann sollten Sie es tun. Es kann verringern die Ladezeiten, minifying. Es wird nie aufhören, einen sehr engagierten hacker, aber es wird sich verlangsamen, ihn/Sie nach unten, und es wird aufhören half-arsed hack-versuche. Es ist sehr einfach zu tun und es gibt viele Extras (siehe andere Antworten), ich würde sagen, dass es bestimmt tun, weil es nur Vorteile die meisten der Zeit, aber nicht erwarten, dass es, um wirkliche Sicherheit oder zu stoppen jemand kopieren Sie Ihren code, wenn Sie wirklich wollen. Der einzige Weg, dies zu tun ist, halten Sie code auf dem server und ajax verwenden.
Der einzige Weg, um wirklich zu halten, etwas Geheimnis ist nicht senden Sie es an den client. Wenn Sie es nicht haben, Sie es nicht Lesen kann. Senden Sie verschlüsselt ist nur ärger bringen, in den Händen der wenigen Menschen, die eigentlich egal, und alle anderen nicht herumzustochern, auch wenn Sie Sie senden in der clear (c.f. DRM).
Das tool ist wirklich toll, Sie können es tun online-Verschleierung Ein weitere link für die Verschleierung
Verschleiern Sie Ihren code keine gute Idee. Es wird nur Unannehmlichkeiten für den rechtmäßigen Benutzer (zB. wenn Sie brauchen, um einen bug zu beheben), und nichts tun zu 'schützen' es von Menschen, die einen (finanziellen) Anreiz zum reverse Engineering. Es ist grundsätzlich nicht möglich um zu verhindern, dass reverse-engineering von Javascript-code.
Das argument, Sie nicht zu verschleiern scheint fehlerhaft zu mir. Es sei denn, Sie wirklich, dass Ihre Benutzer möglicherweise beheben/bugs, dann sollten Sie es tun. Es kann verringern die Ladezeiten, minifying. Es wird nie aufhören, einen sehr engagierten hacker, aber es wird sich verlangsamen, ihn/Sie nach unten, und es wird aufhören half-arsed hack-versuche. Es ist sehr einfach zu tun und es gibt viele Extras (siehe andere Antworten), ich würde sagen, dass es bestimmt tun, weil es nur Vorteile die meisten der Zeit, aber nicht erwarten, dass es, um wirkliche Sicherheit oder zu stoppen jemand kopieren Sie Ihren code, wenn Sie wirklich wollen. Der einzige Weg, dies zu tun ist, halten Sie code auf dem server und ajax verwenden.
InformationsquelleAutor Teifion | 2008-10-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verschleierung:
Versuchen YUI Compressor. Es ist ein sehr beliebtes Instrument, gebaut, erweitert und gepflegt durch die Yahoo UI-team.
Können Sie auch verwenden:
Private String Daten:
Halten, string-Werte private ist eine andere Sorge, und die Verschleierung nicht wirklich viel nutzen. Natürlich, von der Verpackung bis Ihre Quelle in einer verstümmelten, minified Chaos, Sie haben eine light-version von Sicherheit durch Dunkelheit. Die meisten der Zeit, es ist dein Benutzer, die Anzeige der Quelle, und die string-Werte auf dem client sind nur für Ihren Gebrauch, so dass diese Art der privaten string-Wert ist nicht oft nötig.
Wenn Sie wirklich einen Wert, den Sie niemals wollte ein user sehen, haben Sie ein paar Optionen. Erste, Sie könnte eine Art von Verschlüsselung, die Entschlüsselung beim laden der Seite. Das wäre wahrscheinlich eine der sichersten Möglichkeiten, aber auch eine Menge Arbeit, die nicht unbedingt nötig ist. Sie könnte wahrscheinlich base64 Kodieren einige string-Werte, und das wäre einfacher.. aber jemand, der wirklich wollte diese string-Werte könnte leicht Dekodieren. Verschlüsselung ist der einzige Weg, wirklich verhindern, dass jemand Zugriff auf Ihre Daten, und die meisten Leute finden, dass mehr Sicherheit, als Sie brauchen.
Sidenote:
Verschleierung in Javascript wurde bekannt, dass einige bugs. Die obfuscators sind immer ein wenig besser, aber vielen outfits entscheiden, dass Sie genug sehen können, profitieren von minifying und Gzip, und die zusätzlichen Einsparungen der Verschleierung ist nicht immer der Mühe Wert. Wenn Sie versuchen, schützen Sie Ihre Quelle, vielleicht wirst du entscheiden, es lohnt sich, nur um Ihren code schwerer zu Lesen. JSMin ist eine gute alternative.
der server für die weitere Verarbeitung.
FYI, online YUI compressor kann hier gefunden werden: refresh-sf.com/yui
Die Verschlüsselung der Zeichenkette werden die Werte nur geringfügig mehr profitieren als base64-Codierung, wenn Sie müssen entschlüsselt werden, indem der browser Sie zu benutzen. Der Grund dafür ist, dass Sie haben, um dem browser die Verschlüsselung Schlüssel, wie gut, und alles, was der browser tun können, kann der Benutzer auch.
Wenn ich meine minifying mit YUI Compressor ich sicher, dass es verwendet "sicher" minifizierung Methoden, dh es hält das semi-colons
--preserve-semi
. Das umschreiben der privaten Variablen a, b, c, etc ist in der Regel sicher. Eine andere Sache, die ich Tue, ist der minifier setzen einen Zeilenumbruch nach jedem Semikolon in den code--line-break 0
. Dann in Produktion, wenn es Fehler, die ich am wenigsten haben eine gültige Referenz-Zeile zu arbeiten und finden, dass der code in meiner Entwicklung kopieren. Andernfalls werden Sie nur am Ende mit einem Fehler auf eine massive Linie von code und keine Ahnung wo der Fehler ist.InformationsquelleAutor keparo
Ich bin überrascht, niemand hat erwähnt, Google Closure Compiler. Es ist nicht nur verkleinern/komprimieren, es analysiert, um zu finden und entfernen Sie unbenutzte code und schreibt für maximale Verkleinerung. Es kann auch die überprüfung von Typ und wird Sie warnen, über syntax-Fehler.
JQuery vor kurzem wechselte von YUI Compresser, Closure Compiler, und sah eine "solide Verbesserung"
Ich möchte zu beachten, dass, wenn Ihre arbeiten mit Winkel -. dieses tool wird nicht wirklich funktionieren, weil der dependency injection und die Umbenennung der Argumente, es sei denn, es gibt eine checkbox, die ich nicht sehen kann.
Nützliches tool, aber es nicht tun, Verschleierung, das ist wahrscheinlich der Grund, warum sonst niemand Sie erwähnt hatte.
mit Erweiterter Optimierungen (developers.google.com/closure/compiler/docs/api-tutorial3) es wird minifizieren der code bis zu dem Punkt der Verschleierung. Variablen können umbenannt werden, für die Kürze, zum Beispiel.
Google ist nicht nur eine option für Datensicherheit
InformationsquelleAutor Jason Hall
Verschleierung kann nie wirklich funktionieren. Für jeden, der wirklich will, um in Ihren code, es ist nur ein speed bump. Noch schlimmer, es hält auch die Benutzer Fehler zu beheben (und den Versand des Updates zurück zu Ihnen), und macht es schwieriger für Sie, um die Probleme in dem Bereich. Seine eine Verschwendung von Zeit und Geld.
Sprechen Sie mit einem Anwalt über die Rechte des geistigen Eigentums und, was Ihre rechtlichen Möglichkeiten sind. "Open Source" bedeutet nicht, dass "die Leute Lesen können, die Quelle". Stattdessen Open-Source ist ein bestimmtes Modell der Lizenzierung für die Erteilung der Genehmigung, sich frei zu verwenden und ändern Sie Ihren code. Wenn Sie nicht gewährt, eine solche Lizenz die Leute dann kopieren Sie Ihren code gegen und (in den meisten der Welt) Sie haben rechtliche Möglichkeiten, Sie zu stoppen.
Nur so können Sie wirklich schützen Sie Ihr code ist nicht zu liefern. Verschieben Sie die wichtigen code-server-Seite und haben Ihre öffentlichen Javascript-code zu tun Ajax-Aufrufe.
Siehe meine ausführliche Antwort über obfuscators hier.
Rechtsanwälte erzeugen wahrscheinlich mehr Kosten/Probleme als die verlorenen code, denken Sie sehr sorgfältig und arrangieren viel Geld zu engagieren Anwälte!!
-1: ich glaube, dass die Suche nach einem Anwalt, der JavaScript versteht hart werden würde... Nicht um die Erwähnung der Gebühren und die Menge an Zeit benötigt, um herauszufinden, "übertreter". Kann jemand wirklich verletzen eine Lizenz, die begraben wird in der HTML - /JavaScript-Dateien, wenn er nie unterschrieben? +1 " für die AJAX-Aufrufe.
1) Lizenzen grundsätzlich sind über erlauben verwenden von urheberrechtlich geschütztem material. Sie haben wenig Recht, es zu benutzen, ohne die Lizenz. Sie müssen nicht, es zu unterzeichnen, der die Rechte erhalten. Die Lizenz unterscheidet sich von einem Vertrag. 2a) Da die Frage ist, Menschen zu kopieren und mit der HTML/Javascript ohne die Erlaubnis, die Lizenz ist nicht "begraben", es ist direkt an der Sache genommen wird. 2b) Sie haben wenig Recht, jemand anderes urheberrechtlich geschütztes material ohne Lizenz. 3) Der Rechtsanwalt muss nicht verstehen, Javascript, gerade im gewerblichen Rechtsschutz.
Werden Sie nicht stumpf. Dies ist zu bestrafen, wer die Kopie der Datei für die Verwendung auf Ihrer eigenen Website ohne Erlaubnis. Was du redest ist ein Vertrag, der nicht eine Lizenz. Verträge bedürfen der gegenseitigen Zustimmung und sind ein geben und nehmen. Lizenzen gewähren Ihnen die Rechte zur Nutzung des geistigen Eigentums. Lizenzen sind ein Weg (der Besitzer ist die Gewährung von Ihnen die Dinge), sind Sie nicht verpflichtet zu Unterschreiben, weil Sie nicht geben alles Weg. Viele "Software-Lizenz-Vereinbarungen" sind eigentlich Verträge, weil Sie über das hinausgehen, Lizenzierung Eigentum und in manchmal lächerliche Dinge wie das Recht, zu verklagen.
InformationsquelleAutor Schwern
Können Sie verschleiern die javascript-Quelle, wie Sie wollen, aber es wird immer reverse-engineerable nur aufgrund der Anforderung, dass alle den Quellcode tatsächlich laufen auf der client-Maschine... die beste option, die ich denken kann, ist, dass alle Ihre Verarbeitung erfolgt mit server-side-code, und alle client-javascript-code tut, ist das senden von Anforderungen für die Verarbeitung auf dem server selbst. Ansonsten, wer immer in der Lage sein zu verfolgen, alle Vorgänge, die der code macht.
Jemand erwähnt base64 zu halten Streicher sicher. Dies ist eine schreckliche Idee. Base64 ist sofort erkennbar durch die Arten von Menschen, die möchten, um ein reverse Engineering code. Das erste, was Sie tun werden, ist unencode es und sehen, was es ist.
Ein bisschen spät, aber was ich eigentlich meinte ist "server-side-code". Es ist möglich, die Ausführung von javascript nicht in einem browser, der nur auf einem server, aber ich weiß nicht, wie verbreitet das ist.
Ich habe nicht gesagt, "Sie sollten sich keine sorgen machen." Ich sagte nur, dass, wenn Sie möchten, eine closed-source-Programm, sind Sie nicht gehen zu wollen, schreiben Sie es in client-side javascript, weil jede Verbergung Sie nicht verhindern, dass es (ziemlich leicht) reverse-engineered.
Recht. Die in keiner Weise beantwortet "wie kann ich das verschleiern von JavaScript". Verschleierung ist nicht ein abstraktes Konzept, es ist eine technische. Die op einfach die Frage "wie?"
Die Frage war in dem Zusammenhang nicht, dass sein code open source. Die unmittelbare technische Antwort ist das akzeptiert, aber der bessere in-Kontext-Antwort (wie in, was sind Sie wirklich versuchen, zu tun?) ist, IMO, nicht client-side javascript, das ist nicht open-source, denn jeder hat die Quelle, unabhängig davon, wie Sie verschleiern es. So oder so beide Antworten sind hier und die Leute Lesen können und von beiden profitieren.
InformationsquelleAutor Claudiu
Gibt es eine Reihe von JavaScript-obfuscation-tools, die frei verfügbar sind; jedoch, ich denke, es ist wichtig zu beachten, dass es schwierig ist, zu verschleiern JavaScript zu dem Punkt, wo es nicht reverse-engineered.
Zu diesem Zweck gibt es mehrere Optionen, die ich verwendet habe, zu einem gewissen Grad überstunden:
YUI Compressor. Yahoo!'s JavaScript-Kompressor macht einen guten job zu kondensieren und den code verbessern die Ladezeit. Es ist eine kleine Stufe der Verschleierung, die relativ gut funktioniert. Im wesentlichen Kompressor wird sich ändern, Funktionsnamen, entfernen Sie Leerzeichen, und ändern Sie die lokale Variablen. Dies ist, was ich am häufigsten verwenden. Dies ist ein open-source Java-basiertes tool.
JSMin ist ein tool, geschrieben von Douglas Crockford, der versucht, minifizieren JavaScript-source. In Crockford ' s eigenen Worten, "JSMin nicht verschleiern, aber es funktioniert verunstalten." Es ist vorrangiges Ziel es ist, verkleinern Sie die Größe Ihrer Quelle für schnellere Ladezeiten im Browser.
Free JavaScript Obfuscator. Dies ist ein web-basiertes tool, das versucht, Ihren code zu verschleiern, indem Sie wirklich Codierung. Ich denke, dass die trade-offs von seiner form der Codierung (oder Verschleierung), könnte jedoch auf Kosten der Dateigröße; aber das ist eine Frage der persönlichen Vorliebe.
es geht um Statistiken. was ist die Schwelle, dass jemand geht, um Zugang zu Ihrem code mit der Verschleierung und ohne? Sie können immer noch Zugriff, aber je höher die Schwelle, desto weniger Menschen. je weniger die Leute über etwas wissen, desto sicherer, dass etwas. standard-Sicherheits-Einstufung Praxis.
Haben Sie versucht, zeroify.com obfuscator? Es nutzt Minifizierung und Kompression ein, sondern benennt auch Klassen und IDs, um es schwieriger zu verstehen ist die Absicht von Klassen und Objekten
suchen/ersetzen in einem Texteditor geht um Ihr Leben, die viel schwieriger zu versuchen, es zu Lesen oder zu reverse-engineeren. es ist nicht perfekt, aber fügt eine zusätzliche Schicht von ärger/Schwierigkeiten durch das entfernen von Kontext hinweisen. die meisten Programmierer sind nicht so schlau wie du, das ist, was macht diese so eine große Abschreckung.
Ich kenne keinen einzigen Programmierer, die nicht suchen/ersetzen ein paar
[ZER0O00OIFY, ZER0000OIFY, ZEROO00OIFY, ZEROOO0OIFY]
vars in mindestens[var1, var2,..]
innerhalb einer einzigen minute. Ich kann buchstäblich de-verunstalten, wieder Einzug, und die suchen/ersetzen-var-Namen innerhalb von zwei Minuten. Und Nein, ich bin jegliche klüger, als eine Durchschnittliche Jr Dev. Die einfache Tatsache ist, es gibt KEINEN Weg, um zu verschleiern client-Seite in JS. Sie können kaufen Sie sich 5 Minuten, die MAX, aber das ist von keinerlei nutzen. Dieses Zeug ist wirklich nur zu verkaufen, jemand, der nicht weiß, code wurde Hinzugefügt "Sicherheit". Niemand, der je geschrieben hat, eine Linie von JS kaufen würde, Mist.InformationsquelleAutor Tom
Was ich tun würde:
A. Troll hacker!
Dies ist, wird im zweiten Teil meiner fake/obfuscated secret javascript-code LAUNCHER.
Das sehen Sie in den source-code.
Was bedeutet dieser code?
B. Verschleiern der code ein wenig
Was ist das?
C Erstellen Sie einen hard-anzeigen php-Datei mit dem eigentlichen code innerhalb
Was bedeutet dieser php code?
Wenn alles ok ist, wird es zeigen Ihnen den richtigen code sonst ein fake-code oder ip-ban, Seite schließen.. was auch immer.
base64-referrer =
http://here.is/my/launcher.html
GEHEIMNIS javascript =
document.body.appendChild(document.createElement('div')).innerText='Awesome';
FAKE =
window.open('', '_self', '');window.close();
Nun .. wenn du die Ereignisprozeduren definieren, die in das GEHEIMNIS javascript ist es wahrscheinlich zugänglich.. Sie müssen definieren Sie draußen mit den launchcode und deutete auf eine verschachtelte GEHEIME Funktion.
ALSO... gibt es eine einfache wayto den code erhalten?
document.body.appendChild(document.createElement('div')).innerText='Awesome';
Ich bin mir nicht sicher, ob das funktioniert, aber ich bin mit chrome und überprüft die Elemente,Ressourcen,Netzwerk,Quellen,Zeitleiste,Profile,Audits, aber ich finde nicht die Zeile oben.
Anmerkung 1: wenn u öffnen Sie die Troll.php url von element Untersuchen->Netzwerk in Chrom, bekommen Sie die fake-code.
note2: der ganze code ist geschrieben für moderne Browser. polyfill benötigt viel mehr code.
BEARBEITEN
launcher.html
Troll.php
Dies ist etwas, was ich war nur darüber nachzudenken, trolling die cracker. Ich würde gerne sehen, so etwas wie dies ohne den Einsatz von PHP 🙂
Auch wenn dies komisch ist, ein web-Entwickler, der in der Lage ist, ordnungsgemäß zu untersuchen Website, kann irgendwie den Quelltext erhalten. Ich glaube wirklich, dass es keine Möglichkeit gibt, sich zu verstecken jede Art von Daten auf den moment, in dem Sie online gestellt.
Es ist nicht irgendeine Art von Verschleierung, denke ich. jedoch weiß, wie die Konsole öffnen, könnte er auch wissen über base64-Codierung/Decodierung sehr einfach.
InformationsquelleAutor cocco
Versuchen JScrambler. Ich gab ihm einen spin vor kurzem und war beeindruckt von ihm.
Es bietet eine Reihe von Vorlagen für die Verschleierung mit vordefinierten Einstellungen für diejenigen, die don ' T Pflege viel über die details und wollen einfach nur, um bekommen es zu tun schnell. Sie können auch benutzerdefinierte Verschleierung, indem Sie, was auch immer Transformationen/Techniken, die Sie wollen.
Sie haben jetzt einen kostenlosen plan. Die andere Abonnement-Pläne sind noch teuer.
Die free-plan enthält nur die Optimierung und Verkleinerung.
"Die free-plan umfasst die Optimierung und Verkleinerung', ja, Nein. Verschleierung und Optimierung gehen nicht zusammen, sorry.
Blick auf JScrambler ist die website heute und noch mehr-so die Preisgestaltung kann ich nicht sehen, eine gratis-option. Nur einer kostenlosen Testversion..
InformationsquelleAutor Anthony
Das problem mit interpretierten Sprachen ist, dass Sie senden von der Quelle zu bekommen, wie Sie arbeiten (es sei denn, Sie haben einen compiler zu bytecode, aber dann wieder, es ist ziemlich trivial zu dekompilieren).
Also, wenn Sie wollen nicht auf Leistung verzichten, Sie können nur handeln, Variablen und Funktion von Namen, zB. ersetzen Sie Sie mit a, b... aa, ab... oder a101, a102, etc. Und, natürlich, entfernen, wie viel Leerzeichen/Zeilenumbrüche, wie Sie können (das ist, was die so genannten JS-Kompressoren tun).
Verschleierung von strings wird über eine Leistung Treffer, wenn Sie haben, Sie zu verschlüsseln und entschlüsseln Sie Sie in Echtzeit. Plus eine JS-debugger können die endgültigen Werte...
InformationsquelleAutor PhiLho
Gegensatz zu den meisten anderen Antworten, die ich schlage vor, gegen YUI Compressor; Sie verwenden sollten,Google Closure.
Nicht viel, da es mehr komprimiert, sondern vor allem, weil es wird fangen javascript-Fehler, wie
a = [1,2,3,];
dem IE spielen verrückt.InformationsquelleAutor Thomas Bonini
Einem nicht-open-source-Javascript-basierte Anwendung ist ziemlich albern. Javascript ist eine client-side Sprache interpretiert.. Verschleierung nicht viel Schutz..
JS Verschleierung ist in der Regel getan, um zu reduzieren die Größe der Skript, sondern als "schützen". Wenn Sie in einer situation, wo Sie nicht möchten, dass Ihr code public zu werden, ist Javascript nicht die richtige Sprache..
Gibt es viele tools, aber die meisten haben das Wort "Kompressor" (oder "minifier") in seinen Namen für einen Grund..
InformationsquelleAutor dbr
Können Sie nicht secure client side code: drücken Sie einfach F12, die auf Google Chrome, pause die Ausführung von javascript und Sie erhalten alle strings, auch diese verschlüsselt. Verschönern und umbenennen von Variablen und Sie erhalten nahezu den ursprünglichen code.
Wenn Sie das schreiben von server-side javascript (z.B. NodeJS) ist die Angst, dass jemand das eindringen in Ihre server und wollen die hacker die Arbeit erschweren, so dass Sie mehr Zeit, um Ihren Zugang wieder, dann verwenden Sie javacript-Compiler:
Müssen Sie die Verwendung von Closure Compiler auf Erweiterte Zusammenstellung, da es das einzige tool, benennt alle Ihre Variablen, selbst wenn diese in mehrere Dateien/Module. Aber ist es nur noch ein problem: es funktionieren nur, wenn Sie schreiben, es ist coding style.
Es ist nicht für Sie gemacht, aber funktioniert gut, es zu tun: es spielt keine zusätzlichen code hinzufügen, wie einige Compiler ( die in der Regel rückgängig gemacht werden können, die Werkzeuge, die ich zitiert ), aber änderungen, die es zu selten Möglichkeiten, einige sogar schwer rückgängig zu machen, und entfernen Sie unbenutzte code, was im Vergleich zu echten Verschleierung ist gut für die Leistung.
Keine gute Idee. Minifying/kompilieren von code-server-Seite könnte vielleicht einführen, die Sicherheit Probleme, wenn der minifier hat einen Fehler: zyan.scripts.mit.edu/blog/backdooring-js
Den Fehler, den Sie zitiert, gilt nur für UglifyJS: es gilt nicht für Closure Compiler.
Für alle diejenigen, die Pflege über minifying javascript-Dateien, es gibt auch eine javascript-un-minifier. so dass ich don t denke, das ist eine Schicht von Sicherheit auf allen
InformationsquelleAutor Gustavo Rodrigues
Kann ich nur empfehlen, JavaScript-Dienstprogramm von Patrick J. O ' Neil. Es kann verschleiern/kompakt und komprimiert und es scheint zu sein, ziemlich gut an. Das heißt, ich habe nie versucht, die Integration in einen build-Skript jeglicher Art.
Als für Verschleierung vs. minifying - ich bin kein großer fan von der ehemaligen. Es ist das Debuggen nicht möglich (Fehler in Zeile 1... "warte, es ist nur eine Zeile"), und Sie nehmen immer Zeit, um zu packen. Aber wenn Sie brauchen, um... naja.
Heute UglifyJS scheint die beste Wahl zu sein. Der Autor ist ein Cooler Typ zu sein! 🙂
In Bezug auf Debuggen, können Sie meist erzeugen sourcemaps dem Sie beim testen so können Sie sehen, auf welcher Zeile ein Fehler aufgetreten ist, auch wenn es minified.
InformationsquelleAutor Tsvetomir Tsonev
Ich würde vorschlagen, zuerst verkleinern mit so etwas wie YUI Compressor, und dann konvertieren Sie alle string-und zahlen in HEX-Werte mit so etwas wie http://www.javascriptobfuscator.com/
Mit dabei, würde der code gerendert, in der Nähe von unmöglich zu verstehen, und ich denke, dass in dieser Phase es wird mehr Zeit für einen Hacker, um re-enact Ihren code als eigentlich, wenn er neu geschrieben von Grund auf. Umschreiben und Klonen ist das, was Sie nicht tatsächlich stoppen. Schließlich sind wir freie Menschen !
InformationsquelleAutor Dynamite Blitzer
Dean Edwards Packer ist eine ausgezeichnete obfuscator, obwohl es in Erster Linie verbirgt den code, nicht auf string-Elemente, die Sie haben in Ihrem code.
Finden Sie unter: Online Javascript Compression Tool und wählen Packer (von Dean Edwards) aus der dropdown -
InformationsquelleAutor smdrager
Habe ich mit Jasob seit Jahren und es ist hands down der beste obfuscator gibt.
Es hat eine erweiterte Benutzeroberfläche, ist aber trotzdem intuitiv und einfach zu bedienen.
Es wird auch mit HTML-und CSS-Dateien.
Der beste Weg, es zu benutzen ist das Präfix alle Ihre private Variablen, die mit so etwas wie ein Unterstrich, dann verwenden Sie die
sort
Funktion, um Sie alle zu einer Gruppe zusammen und überprüfen Sie Weg, die Ziele für die Verschleierung.Nutzer können trotzdem Ihre Quelle, aber es ist viel mehr schwer zu entziffern, wenn Ihre privaten Variablen, die konvertiert werden, von so etwas wie
_sUserPreferredNickName
zua
.Wird der Motor automatisch tally die Anzahl der gezielt Variablen und priorisieren Sie Sie, um die maximale Kompression.
Ich arbeite nicht für Jasob und ich bekomme nichts aus Sie zu fördern, ist nur bieten einige freundliche Beratung.
Der Nachteil ist, dass es ist nicht kostenlos und ist ein wenig teuer, aber immer noch Wert, wenn gestapelt gegen die alternativen - die "Kostenlose" Optionen, die nicht einmal nahe kommen.
InformationsquelleAutor Matt
Haben Sie versucht,Bananascript? Es erzeugt hoch komprimierte und völlig unlesbaren code.
eval()
in der letzten Zeile zuconsole.log()
und Ihre Konsole spuckte die ganze SacheInformationsquelleAutor niutech
Bin ich mit dem Closure-Compiler-Werkzeug für die java-Skript obfuscation. Es minimiert den code, und hat mehr Möglichkeiten.
Dieses Dienstprogramm ist verfügbar bei Google-code unter URL:
Verschluss-Tools
Aber jetzt Tage ich höre viel von UglifyJS. Finden Sie verschiedene Vergleich zwischen den Closure Compiler und UglifyJS, in denen Verunstalten scheint ein Gewinner zu sein.
UglifyJS: Eine Neue, Schnelle JavaScript-Kompressor Für Node.js Das ist Auf Augenhöhe Mit Verschluss
Bald würde ich die chance geben zu UglifyJS.
InformationsquelleAutor shaILU
Ich bin unter dem Eindruck, dass manche Unternehmen (z.B.: JackBe) setzen verschlüsselten JavaScript-code, der in *.gif-Dateien, anstatt JS-Dateien, als eine zusätzliche Maßnahme der Verschleierung.
InformationsquelleAutor xgMz
Als JavaScript/HTML/CSS obfuscator/compressor Sie können auch versuchen Patu Digua.
InformationsquelleAutor Adrian
Versuchen dieses tool Javascript Obfuscator
Ich es auf mein HTML5 Spiel nicht nur, es reduziert die Größe von 950KB zu 150, aber auch der source-code nicht lesbar closure Compiler und minifiers sind umkehrbar ich persönlich weiß nicht, wie die Umkehrung dieser Verschleierung.
InformationsquelleAutor Jerczu
Sie sollten auf jeden Fall erwägen Sie einen Blick auf Obfuscriptor.
Ich geht über die typischen minifying Javascript tricks, die wir gesehen haben, die aus anderen tools wie YUI Compressor oder Google Closure.
Den verborgenen code sieht eher aus wie verschlüsselt. Anders als alles, was ich bisher gesehen habe.
Beachten Sie, dass Obfuscriptor warnt Sie, dass es nicht funktioniert mit dem IE. Das ist ein deal breaker für einige.
Den link auf die Antwort doens nicht das tool nicht mehr. Ich Couln ' T finden ein anderes Leben verweist.
der erste link ist tot. "Obfuscriptor"
InformationsquelleAutor Mike
Dies minimiert eine aber nicht verschleiern. Wenn Sie nicht möchten, verwenden Sie die Befehlszeile Java können Sie fügen Sie Ihren javascript-Code in eine webform.
danke, aktualisiert
InformationsquelleAutor Chris S
Wenn Sie verwenden eine JavaScript-Bibliothek, betrachten Dojo Toolkit kompatibel ist (nach geringfügigen änderungen) mit dem Closure Compiler Advanced-Modus Zusammenstellung.
Dojo – Der Einzige JavaScript-Bibliothek
Kompatibel mit Dem Closure Compiler
Code kompiliert mit Verschluss Advanced-Modus ist es fast unmöglich, reverse-engineer, sogar die durch einen beautifier, als die gesamte code-Basis (includinhg der Bibliothek) ist verschleiert. Es ist auch 25% kleiner im Durchschnitt.
JavaScript-code, der lediglich minified (YUI Compressor, Verunstalten etc.) ist einfach zu reverse-engineer, nachdem er durch einen beautifier.
InformationsquelleAutor Stephen Chung
Ich habe dies in der Vergangenheit, und es macht einen guten job. Es ist nicht kostenlos, aber Sie sollten definitiv einen Blick.
JavaScript Obfuscator & Encoder
InformationsquelleAutor Henry