2010-05-23 5 views
2

Comment puis-je faire en sorte qu'un fichier javascript ne fonctionne que sur un seul domaine. Je vais compresser ce fichier et quand quelqu'un essaie de l'utiliser en copiant mon site web ou juste le fichier javascript, cela ne fonctionnera pas et donnera une alerte. Il s'agit d'un example. J'ai téléchargé tous les fichiers mais quand essayer de voir il donne une alerte qui dit que je dois l'acheter (exactement ce que je vais faire :)Fichier Javascript pour un seul domaine

+5

Ceci est impossible. – rook

+0

@The Rock: Pouvez-vous désobstruer ce fichier: http://s3.envato.com/files/293712/javascript/msgbox/jquery.msgbox.min.js? –

+0

Cela devrait probablement avoir une étiquette de sécurité, je ne pense pas que la balise hijack est utile. – rook

Répondre

4

Vous ne pouvez pas vraiment faire cela. Vous pourriez mettre quelque chose au début de votre code comme ceci:

if (window.location.href.substring(0, 18) != "http://example.com") { 
    alert("You thief! Stop using my code!"); 
} 

... mais tout ce qui signifie que la personne qui l'utilise supprimerait que de leur copie. Obfuscation pourrait aider, mais pas nécessairement beaucoup. Tout ce que l'interpréteur Javascript peut interpréter, quelqu'un peut copier et réutiliser. Tout ce que vous pouvez faire est de placer la barre un peu plus haut, et vous avez probablement des choses plus importantes à faire.

+1

Utilisez 'location.host' de préférence à' href', et faites un 'toLowerCase()' dessus pour obtenir une comparaison insensible à la casse. – bobince

+0

@bobince: Bons points à la fois. Mais bien sûr, il n'y a pas grand-chose de toute façon ... –

6

C'est pas possible, javascript peut être obfuscated mais un développeur adepte peut toujours comprendre cela et utiliser vos fichiers. Vous pouvez copyright votre fichier mais toujours dans les pays où il n'y a pas de politique de confidentialité, cela n'a pas d'importance.

+0

Je ne pouvais pas dissimuler ce fichier js .. –

+0

@HasanGursoy: Même si vous le pouviez, cela n'aurait pas d'importance devant un développeur adepte de le déchiffrer. – Sarfraz

+1

+ 1 Ceci est un problème légal et non un problème logiciel. – rook

2

Dans les langages de script, le code source et le programme sont les mêmes que les langages compilés dans lesquels vous compilez le code source dans un binaire qui est dans un format différent. C'est pourquoi (comme d'autres l'ont dit) vous ne pouvez pas protéger votre code JavaScript contre l'utilisation par d'autres. La seule méthode (autre que l'obscurcissement que d'autres ont mentionné) est de déplacer l'implémentation ailleurs, vous pouvez créer un web-service contenant la logique que vous voulez protéger et ensuite faire appel à JavaScript en utilisant AJAX (et vérifiez qu'il provient de votre site). Ceci présente les inconvénients évidents d'être plus lent et de vous fournir une puissance de traitement au lieu d'utiliser les processeurs côté client.

+0

Vous pouvez décompiler un langage compilé, Ida pro est puissant. – rook

+1

@Rook Bien sûr que vous pouvez décompiler certaines langues, je discutais dans l'autre direction, puisque le code source est ce qui est exécuté, il n'y a pas de concept de protection du code source lors de la distribution du code exécutable. – Motti

2

Exécutez-le par JSMIN (uglifier), si vous êtes toujours inquiet, javascript est la mauvaise solution.

Questions connexes