Frage

    

Diese Frage bereits eine Antwort hier:

         

Gibt es eine Möglichkeit JavaScript-Code zu verbergen oder zu verschlüsseln Menschen aus Anzeigen, Kopieren und / oder zu modifizieren proprietäre Programme zu verhindern?

War es hilfreich?

Lösung

Sie können es verschleiern, aber es gibt keinen Weg, um es vollständig zu schützen.

Beispiel obfuscator: https://obfuscator.io http://www.javascriptobfuscator.com/Default.aspx

Andere Tipps

Nein, es ist nicht möglich. Wenn es auf dem Client-Browser ausgeführt wird, muss sie durch den Client-Browser heruntergeladen werden. Es ist ziemlich trivial Fiddler zu verwenden, um die HTTP-Sitzung zu prüfen und alle heruntergeladenen js Dateien.

Es gibt Tricks, die Sie verwenden können. Einer der offensichtlichsten ist ein Javascript obfuscator zu verwenden.

erneut Dann Verschleierung verhindert nur Ausspionieren und tun verhindern, dass Menschen heben und Ihren Code.

Sie können versuchen, zusammengestellt Action Script in Form eines Flash-Film.

Während jeder wird in der Regel zustimmen, dass Javascript-Verschlüsselung ein schlechte Idee ist, gibt es ein paar kleine Anwendungsfälle wo der Angriff Verlangsamung ist besser als nichts. Sie können mit YUI Compressor beginnen (als @ Ben Alpert) sagte, oder JSMin, verunstalten oder vieles mehr.

Allerdings ist der Haupt Fall, in dem ich wirklich will, zu ‚verstecken Sachen‘ ist, wenn ich eine E-Mail-Adresse bin zu veröffentlichen. Beachten Sie, dass sich das Problem von Chrome ist, wenn Sie klicken Sie auf ‚Element untersuchen‘. Es wird Ihren ursprünglichen Code zeigen: jedes Mal. Aus diesem Grunde ist die Verschleierung der Regel als eine bessere Art und Weise betrachtet zu gehen.

In diesem Sinne nehme ich einen zweigleisigen Angriff, rein Spam-Bots zu verlangsamen. Ich Obfuscate / die js minify und dann wieder laufen durch einen Encoder (wieder, dieser zweite Schritt ist völlig sinnlos in Chrom).

Während nicht gerade ein reiner Javascript-Encoder, der beste HTML-Encoder ich gefunden habe, ist http://hivelogic.com/enkoder/ . Es wird diese drehen:

<script type="text/javascript">
//<![CDATA[
<!--
var c=function(e) { var m="mail" + "to:webmaster";var a="somedomain"; e.href = m+"@"+a+".com";  
};
//-->
//]]>
</script>
<a href="#" onclick="return c(this);"><img src="images/email.png" /></a>

in diesen:

<script type="text/javascript">
//<![CDATA[
<!--
var x="function f(x){var i,o=\"\",ol=x.length,l=ol;while(x.charCodeAt(l/13)!" +
"=50){try{x+=x;l+=l;}catch(e){}}for(i=l-1;i>=0;i--){o+=x.charAt(i);}return o" +
".substr(0,ol);}f(\")87,\\\"meozp?410\\\\=220\\\\s-dvwggd130\\\\#-2o,V_PY420" +
"\\\\I\\\\\\\\_V[\\\\\\\\620\\\\o710\\\\RB\\\\\\\\610\\\\JAB620\\\\720\\\\n\\"+
"\\{530\\\\410\\\\WJJU010\\\\|>snnn|j5J(771\\\\p{}saa-.W)+T:``vk\\\"\\\\`<02" +
"0\\\\!610\\\\'Dr\\\\010\\\\630\\\\400\\\\620\\\\700\\\\\\\\\\\\N730\\\\,530" +
"\\\\2S16EF600\\\\;420\\\\9ZNONO1200\\\\/000\\\\`'7400\\\\%n\\\\!010\\\\hpr\\"+
"\\= -cn720\\\\a(ce230\\\\500\\\\f730\\\\i,`200\\\\630\\\\[YIR720\\\\]720\\\\"+
"r\\\\720\\\\h][P]@JHADY310\\\\t230\\\\G500\\\\VBT230\\\\200\\\\Clxhh{tzra/{" +
"g0M0$./Pgche%Z8i#p`v^600\\\\\\\\\\\\R730\\\\Q620\\\\030\\\\730\\\\100\\\\72" +
"0\\\\530\\\\700\\\\720\\\\M410\\\\N730\\\\r\\\\530\\\\400\\\\4420\\\\8OM771" +
"\\\\`4400\\\\$010\\\\t\\\\120\\\\230\\\\r\\\\610\\\\310\\\\530\\\\e~o120\\\\"+
"RfJjn\\\\020\\\\lZ\\\\\\\\CZEWCV771\\\\v5lnqf2R1ox771\\\\p\\\"\\\\tr\\\\220" +
"\\\\310\\\\420\\\\600\\\\OSG300\\\\700\\\\410\\\\320\\\\410\\\\120\\\\620\\" +
"\\q)5<: 0>+\\\"(f};o nruter};))++y(^)i(tAedoCrahc.x(edoCrahCmorf.gnirtS=+o;" +
"721=%y;++y)87<i(fi{)++i;l<i;0=i(rof;htgnel.x=l,\\\"\\\"=o,i rav{)y,x(f noit" +
"cnuf\")"                                                                     ;
while(x=eval(x));
//-->
//]]>
</script>

Vielleicht ist es genug, um ein paar Spam-Bots zu verlangsamen. Ich habe keinen Spam kommt durch mit dieser habe (! Noch) nicht.

Eines der besten Kompressoren (nicht speziell ein obfuscator) ist der YUI Compressor .

JavaScript ist eine Skriptsprache und deshalb bleibt in für Menschen lesbaren Form, bis es Zeit ist für sie von der JavaScript-Laufzeit interpretiert und ausgeführt werden.

Der einzige Weg, es zu teilweise zu verstecken, zumindest von dem weniger technischen Verstand, ist zu verschleiern.

Obfuscation macht es schwieriger für Menschen, es zu lesen, aber nicht unmöglich für die technisch versiert.

Wenn Sie etwas haben insbesondere Sie (wie ein proprietärer Algorithmus) ausblenden möchten, setzen Sie, dass auf dem Server oder in einem Flash-Film setzen und es mit JavaScript aufrufen. Schreiben von Actionscript ist sehr ähnlich wie das Schreiben JavaScript, und Sie können zwischen JavaScript und Actionscript kommunizieren. Sie können das gleiche mit Silverlight, aber Silverlight nicht die Penetration Blitz wird.

Beachten Sie jedoch, dass alle Mobiltelefone sie JavaScript ausführen können, aber nicht Silverlight oder Flash, so dass Sie lähmen Ihre mobile Benutzer, wenn Sie mit Flash oder Silverlight gehen.

Der einzig sichere Weg, um Ihren Code zu schützen, gibt es nicht weg. Mit Client-Implementierung gibt es keine Vermeidung der Client Zugang zu dem Code.

So die kurze Antwort lautet: Sie können es nicht tun

Die längere Antwort erwägt Flash oder Silverlight. Obwohl ich glaube, Silver gerne es Geheimnisse geben, um mit Reflektor auf dem Client ausgeführt wird.

Ich bin mir nicht sicher, ob etwas simular existiert mit der Flash-Plattform.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top