Si j'écris une application Javascript côté client (avec un peu d'interaction avec le serveur), comment empêcher les gens de copier les fichiers Javascript sur leur propre site? Dois-je du tout?
javascript
copyright
copy-protection
sjmulder
la source
la source
Le mieux que vous puissiez faire est d'obscurcir le code afin que d'autres aient du mal à le modifier. Bien sûr, vous conservez une copie de l'original.
En prime, le code obscurci devrait être plus petit et donc plus rapide à charger.
la source
Pourquoi t'inquiètes-tu? Je vois deux raisons pour lesquelles cela pourrait être: 1) Vous écrivez une bibliothèque JavaScript commerciale. Solution: Obtenez un autre plan d'affaires, les bibliothèques JavaScript sont généralement gratuites. Peut-être que vous pouvez gagner de l'argent dans un petit créneau d'entreprises, mais elles ne vont probablement pas utiliser de code copié illégalement de toute façon.
2) Vous craignez que votre concurrent ne copie votre site. S'ils le font, vous pouvez être assuré que vous aurez toujours une longueur d'avance sur eux. Plus probablement, ils vont écrire leur propre code et copier l'apparence et le comportement de votre site et rien ne peut vous en sauver, sauf pour obtenir des brevets logiciels stupides, par exemple, Amazon shopping en un clic.
IOW, ne t'inquiète pas. Mettez un avis de droit d'auteur demandant aux gens de vous dire s'ils utilisent vos trucs. Si suffisamment de personnes le font, utilisez le fait que vous avez créé une bibliothèque utile pour obtenir du crédit parmi les geeks, ce qui sera probablement bénéfique à long terme.
la source
Non. N'essayez pas de "protéger" un langage de script côté client. L'obfuscation ne fonctionne pas. La minification a ses utilités (mais l'anti-piratage n'en fait pas partie)
Je recommande également contre minifying votre code , sauf si vous obtenez des milliers de visites par jour, où quelques kilo - octets supplémentaires par demande sera une différence notable (et seulement faire une fois que vous compressez toutes les images que vous utilisez correctement, ce qui vous permettra d' économiser bien plus que quelques Ko, configurez la mise en cache correctement, etc.).
Même si vous minimisez / obscurcissez le Javascript, les gens peuvent toujours le copier de manière assez triviale sur leur propre site. Ce sera un peu plus difficile à modifier, mais selon ce que fait le script, cela peut ne pas avoir d'importance. Par exemple, l'éditeur WMD que les gens ont mentionné est fourni, pour un usage public, minifié.
L'obfuscation et la minification peuvent être similaires, mais si vous deviez obscurcir correctement le code, vous devriez en réécrire de gros segments pour le rendre difficile à comprendre. Cela rend le code plus compliqué et beaucoup plus difficile à gérer (pour vous), ainsi introduira des bugs .. Si votre Javascript devient bogué, cela empêchera le piratage, car personne ne voudra l'utiliser (ou le voler) .. mais, euh, ce n'est pas bon.
L'une des grandes choses à propos de Javascript est que n'importe qui peut cliquer avec le bouton droit / afficher la source et apprendre Javascript en regardant du code en direct et fonctionnel. Si vous êtes inquiet à propos des gens qui regardent le code et le copient, le Web / Javascript n'est pas '' t la bonne langue ..
Je recommanderais de mettre un commentaire au début de tous vos
.js
fichiers et<script>
blocs, avec vos informations (nom, site Web) et une licence quelconque. En fonction de ce qu'est le code, mettre peut-être un avis disant "Si vous utilisez tout ou partie de ce code dans un projet, faites-le moi savoir!" peut être bien plus efficace que "N'utilisez jamais ce code à d'autres fins!"la source
Vous pouvez obscurcir (ou au moins réduire) le code pour décourager cela (bien qu'il ne soit pas imparable pour quelqu'un qui a le temps. Par exemple, la désobfuscation de l'éditeur WMD par StackOverflow (mais c'était pour une bonne raison!)).
Vraiment, tout code que vous mettez en frontend sera public et disponible pour tous.
la source
Pourquoi vous en soucier? Si vos scripts valent la peine d'être volés, vous pouvez plutôt les rendre open source et obtenir de l'aide pour les perfectionner.
la source
Vous ne pouvez pas vraiment car c'est un langage interprété qui est toujours livré sous forme de code source. Même l'obscurcissement n'aidera pas beaucoup si le pirate est suffisamment motivé.
(Exemple de cas: l' éditeur WMD StackOverflow , qui pourrait être - à proprement parler - être considéré comme du piratage, bien que je sache que Jeff et Dana n'avaient que de bonnes intentions)
la source
Non, vous ne devriez pas vous inquiéter du tout.
Si votre entreprise dépend du secret de votre code JavaScript, il y a un sérieux problème avec celui-ci.
Sinon, ne vous embêtez pas. Vous devriez peut-être essayer de minimiser votre code JavaScript pour accélérer le chargement des pages.
la source
J'utilise GWT (Google Web Toolkit) pour écrire des applications Web, dans lesquelles le code est entièrement écrit en Java et peut être débogué et testé avec des outils centrés sur Java, mais est converti en JavaScript pour publication.
Lorsqu'il n'est pas en mode
PRETTY
ouDETAILED
, le JavaScript généré par GWT est très hautement optimisé et obscurci, ce qui le rend extrêmement peu pratique pour la rétro-ingénierie. (Un obfuscateur JavaScript traditionnel fournira une partie de ces avantages - mais pas lorsque les optimisations dépendent de la capacité de GWT à effectuer une élagage de branche détaillé et une analyse du chemin de code).Cela dit, en général, je suis -1 sur l'obscurcissement - cela signifie, par exemple, que les clients légitimes sont moins en mesure de vous aider à comprendre leurs problèmes, même lorsqu'ils ont des compétences en développement et une copie de FireBug. Vous êtes l'auteur original - vous connaissez le code mieux que quiconque, et cela vous donne un avantage concurrentiel par rapport à quelqu'un qui essaie d'exécuter une imitation bon marché; en outre, si un tel concurrent gagne réellement de l'argent réel sur quelque chose qu'il a volé sans autorisation, cela peut lui faire retirer cet argent (ou, potentiellement, tripler la somme) dans une action en justice; une concurrence légitime et sérieuse ne suivra pas cette voie, et pourquoi s'inquiéter de l'autre?
la source
Nous utilisons beaucoup de code Javascript (et beaucoup de côté serveur) pour notre application Web, et nous avons choisi de "masquer" les Javascripts en supprimant les espaces blancs, les sauts de ligne, etc. - cela ne protégera pas vraiment votre code, mais il est très difficile à lire et à comprendre, et il est probable que les autres ne s'en soucieront pas en raison de l'effort impliqué.
Cependant, la raison pour laquelle nous le faisons n'est pas tant que nous ne voulons pas que quiconque copie des parties de notre code, mais plutôt pour décourager nos partenaires / clients à qui nous livrons le code de faire des modifications directement dans "nos fichiers" (à éviter les problèmes lors de l'installation de la prochaine mise à jour) ...
Remarque: l'obfuscation présente un inconvénient dont vous devez être conscient, cependant: si vous avez besoin de déboguer ce code de script, vous ne pourrez pas vous-même travailler avec l'infromation obscurcie, donc cela impliquera toujours de copier le fichier `` lisible '' sur le serveur d'abord.
la source
En partant du principe que tout javascript suffisamment bon sera récupéré par d'autres, pourquoi ne pas simplement nager avec le courant et en tirer le meilleur parti?
Giflez une licence dessus qui permet une utilisation tout en nécessitant par exemple une attribution. Peut-être avec une clause non commerciale comme certaines variantes de Creative Commons, si vous le devez vraiment.
la source
La plupart de votre logique d'application doit être côté serveur. Javascript ne doit gérer que les éléments de l'interface graphique et les interactions simples avec le serveur. Si votre code Javascript contient suffisamment de logique d'application que vous craignez que quelqu'un le vole, vous faites probablement quelque chose de mal.
la source
Si vous avez des secrets commerciaux, vous pouvez déplacer les parties les plus sensibles du code vers ActionScript (Flash). C'est essentiellement le même langage que JavaScript et il est stocké sous forme de jetons.
la source
Si vous craignez que des pirates inconditionnels déterminés volent votre code, désolé, vous ne pouvez rien faire. Mais il existe des moyens de le rendre peu pratique pour les voleurs occasionnels. Un moyen relativement simple de le faire est de charger certaines pièces à l'aide de
XMLHttpRequest
eteval()
elles; cela pourrait être déguisé en (ou inclus dans) quelque chose qui obtient des données JSON et les utilise pour remplir la page.la source