Wie kann ich verhindern, dass Benutzer die Javascript-Dateien auf ihre eigene Site kopieren, wenn ich eine clientseitige Javascript-App schreibe (mit ein wenig Serverinteraktion)? Soll ich überhaupt?
javascript
copyright
copy-protection
sjmulder
quelle
quelle
Das Beste, was Sie tun können, ist, den Code zu verschleiern, damit andere ihn nur schwer ändern können. Natürlich behalten Sie eine Kopie des Originals.
Als Bonus sollte verschleierter Code kleiner und daher schneller zu laden sein.
quelle
Warum machst du dir Sorgen? Ich sehe zwei Gründe dafür: 1) Sie schreiben eine kommerzielle JavaScript-Bibliothek. Lösung: Holen Sie sich einen anderen Geschäftsplan, JavaScript-Bibliotheken sind in der Regel kostenlos. Vielleicht können Sie in einer kleinen Nische von Unternehmen Geld verdienen, aber sie werden höchstwahrscheinlich sowieso keinen illegal kopierten Code verwenden.
2) Sie befürchten, dass Ihr Konkurrent Ihre Website kopieren wird. Wenn dies der Fall ist, können Sie sicher sein, dass Sie ihnen immer einen Schritt voraus sind. Wahrscheinlicher ist, dass sie ihren eigenen Code schreiben und das Erscheinungsbild und Verhalten Ihrer Website kopieren. Nichts kann Sie davor retten, außer dumme Softwarepatente zu erhalten, z. B. Amazon One-Click-Shopping.
IOW, mach dir keine Sorgen. Fügen Sie einen Copyright-Hinweis ein, in dem Sie aufgefordert werden, Ihnen mitzuteilen, ob sie Ihre Inhalte verwenden. Wenn genug Leute es tun, nutzen Sie die Tatsache, dass Sie eine nützliche Bibliothek erstellt haben, um Guthaben unter Geeks zu erhalten, was auf lange Sicht wahrscheinlich von Vorteil sein wird.
quelle
Versuchen Sie nicht, eine clientseitige Skriptsprache zu "schützen". Die Verschleierung funktioniert nicht. Minimieren hat seine Verwendung (aber Anti-Piraterie ist keine davon)
Ich würde auch empfehlen , gegen minifying Code , wenn Sie Tausende von Treffern pro Tag bekommen, wo ein paar zusätzliche Kilobyte pro Anfrage wird einen spürbaren Unterschied (und nur tun, dass , sobald Sie alle Bilder komprimieren Sie richtig verwenden sind, die Sie speichern weit mehr als ein paar KB, Caching richtig einrichten und so weiter) ..
Selbst wenn Sie das Javascript minimieren / verschleiern, können die Benutzer es ganz einfach auf ihre eigene Site kopieren. Es wird etwas schwieriger zu ändern sein, aber je nachdem, was das Skript tut, spielt das möglicherweise keine Rolle. Zum Beispiel wird der von Menschen erwähnte WMD-Editor zur öffentlichen Verwendung minimiert geliefert.
Verschleierung und Minimierung können ähnlich sein, aber wenn Sie den Code richtig verschleiern würden, müssten Sie im Grunde große Teile davon neu schreiben, um das Verständnis zu erschweren. Dies macht den Code komplizierter und weitaus schwieriger zu handhaben (z Sie), also werden Fehler eingeführt. Wenn Ihr Javascript fehlerhaft wird, wird dies Piraterie verhindern, da niemand es verwenden (oder stehlen) möchte. Aber ähm, das ist nicht gut.
Eines der großartigen Dinge an Javascript ist, dass jeder mit der rechten Maustaste klicken / Quelle anzeigen und Javascript lernen kann, indem er sich Live- und Arbeitscode ansieht. Wenn Sie sich Sorgen machen, dass Leute den Code betrachten und kopieren, ist das Web / Javascript nicht vorhanden. t die richtige Sprache ..
Ich würde empfehlen, am Anfang aller Ihrer
.js
Dateien und<script>
Blöcke einen Kommentar mit Ihren Informationen (Name, Website) und einer Lizenz zu setzen. Je nachdem, um welchen Code es sich handelt, wird möglicherweise ein Hinweis mit der Aufschrift "Wenn Sie diesen Code ganz oder teilweise in einem Projekt verwenden, lassen Sie es mich bitte wissen!" ist möglicherweise weitaus effektiver als "Verwenden Sie diesen Code niemals für einen anderen Zweck!"quelle
Sie könnten den Code verschleiern (oder zumindest minimieren), um dies zu verhindern (obwohl dies für jemanden, der Zeit hat, nicht unaufhaltsam ist. Zum Beispiel die Deobfuscation des WMD-Editors durch StackOverflow (aber das hat einen guten Grund!)).
Wirklich jeder Code, den Sie Frontend setzen, wird öffentlich und für alle sichtbar / verwendbar sein.
quelle
Warum sich überhaupt darum kümmern? Wenn Ihre Skripte es wert sind, gestohlen zu werden, können Sie sie stattdessen zu Open Source machen und Hilfe beim Honen erhalten.
quelle
Sie können nicht wirklich, da es sich um eine interpretierte Sprache handelt, die immer in Quellcodeform geliefert wird. Selbst die Verschleierung wird nicht viel helfen, wenn der Pirat genug motiviert ist.
(Fallbeispiel: Der StackOverflow WMD Editor , der - genau genommen - als Piraterie angesehen werden kann, obwohl ich weiß, dass Jeff und Dana nur gute Absichten hatten)
quelle
Nein, du solltest dir überhaupt keine Sorgen machen.
Wenn Ihr Unternehmen von der Geheimhaltung Ihres JavaScript-Codes abhängig ist, liegt ein ernstes Problem vor.
Ansonsten kümmere dich einfach nicht darum. Möglicherweise sollten Sie versuchen, Ihren JavaScript-Code zu minimieren, damit die Seiten schneller geladen werden.
quelle
Ich verwende GWT (das Google Web Toolkit) zum Schreiben von Webanwendungen, bei denen der Code vollständig in Java geschrieben ist und mit Java-zentrierten Tools debuggt und getestet werden kann, aber zur Veröffentlichung in JavaScript konvertiert wird.
Wenn das von GWT generierte JavaScript nicht aktiviert
PRETTY
oder nichtDETAILED
aktiviert ist, ist es sehr stark optimiert und verschleiert, was ein Reverse Engineering äußerst unpraktisch macht. (Ein herkömmlicher JavaScript-Verschleierer bietet einen Teil dieser Vorteile - jedoch nicht, wenn die Optimierungen von der Fähigkeit von GWT abhängen, detaillierte Verzweigungsbereinigungen und Codepfadanalysen durchzuführen.)Im Allgemeinen bin ich jedoch -1 in Bezug auf Verschleierung - dies bedeutet zum Beispiel, dass legitime Kunden weniger in der Lage sind, Ihnen bei der Ermittlung ihrer Probleme zu helfen, selbst wenn sie über Entwicklungsfähigkeiten und eine Kopie von FireBug verfügen. Sie sind der ursprüngliche Autor - Sie kennen den Code besser als jeder andere, und das verschafft Ihnen einen Wettbewerbsvorteil gegenüber jemandem, der versucht, einen billigen Abschlag durchzuführen. Wenn ein solcher Konkurrent tatsächlich echtes Geld mit etwas verdient, das er ohne Erlaubnis gestohlen hat, kann er dieses Geld (oder möglicherweise die dreifache Summe) in einem Rechtsstreit wegnehmen. Ein legitimer und ernsthafter Wettbewerb wird diesen Weg nicht gehen, und warum sollte man sich um die andere Art sorgen?
quelle
Wir verwenden viel Javascript-Code (und viel serverseitigen Code) für unsere Webanwendung und haben uns dafür entschieden, die Javascripts zu "verschleiern", um Leerzeichen, Zeilenumbrüche usw. zu entfernen. Dies schützt Ihren Code nicht wirklich. Aber machen Sie es sehr, sehr schwer zu lesen und zu verstehen, und höchstwahrscheinlich werden sich andere aufgrund des damit verbundenen Aufwands nicht darum kümmern.
Der Grund, warum wir dies tun, ist jedoch nicht so sehr, dass wir nicht möchten, dass jemand Teile unseres Codes kopiert, sondern dass wir unsere Partner / Kunden, denen wir den Code liefern, davon abhalten, Änderungen direkt in "unseren Dateien" vorzunehmen (an Vermeiden Sie Probleme bei der Installation des nächsten Updates.
Hinweis: Die Verschleierung hat jedoch einen Nachteil, den Sie beachten sollten: Wenn Sie diesen Skriptcode jemals debuggen müssen, können Sie selbst nicht mit der verschleierten Information arbeiten, sodass immer die lesbare Datei in die Datei kopiert werden muss Server zuerst.
quelle
Unter der Annahme, dass ausreichend gutes Javascript von anderen aufgegriffen wird, können Sie einfach mit der Strömung schwimmen und das Beste daraus machen.
Schlagen Sie eine Lizenz darauf, die die Verwendung erlaubt, während beispielsweise eine Zuordnung erforderlich ist. Vielleicht auch mit einer nichtkommerziellen Klausel wie einigen Creative Commons-Varianten, wenn Sie wirklich müssen.
quelle
Der größte Teil Ihrer Anwendungslogik sollte serverseitig sein. Javascript sollte nur GUI-Inhalte und einfache Interaktionen mit dem Server verarbeiten. Wenn Ihr Javascript-Code genügend Anwendungslogik enthält, um sich Sorgen zu machen, dass jemand ihn stiehlt, machen Sie wahrscheinlich etwas falsch.
quelle
Wenn Sie Geschäftsgeheimnisse haben, können Sie die sensibelsten Teile des Codes nach ActionScript (Flash) verschieben. Es ist im Wesentlichen dieselbe Sprache wie JavaScript und wird in tokenisierter Form gespeichert.
quelle
Wenn Sie sich Sorgen machen, dass entschlossene Hardcore-Hacker Ihren Code stehlen, können Sie leider nichts tun. Aber es gibt Möglichkeiten, es für zufällige Diebe unpraktisch zu machen. Eine relativ einfache Möglichkeit besteht darin, einige Teile mit
XMLHttpRequest
und zu ladeneval()
. Dies kann als etwas getarnt (oder darin enthalten) sein, das JSON-Daten abruft und diese zum Auffüllen der Seite verwendet.quelle