Python Applications: Vous Pouvez Sécuriser Votre Code, En Quelque Sorte?
Si il y a vraiment une "meilleure" façon, ce est la meilleure façon d'expédier un python application et de s'assurer les gens ne peuvent pas (facilement) désosser votre algorithmes/sécurité/travail en général?
Si il n'y a pas une meilleure façon, quelles sont les différentes options disponibles?
Arrière-plan:
J'adore le codage en Python et amour pour la libération de plus d'apps avec elle. Une chose que je me demande, c'est la possibilité que des personnes contourner toute licence de code que j'ai mis dans, ou peut-être juste arracher la totalité de mon code source de base. J'ai entendu parler de Py2Exe et autres applications similaires, mais je suis curieux de savoir si il y a des "privilégiées" façons de le faire, ou si ce problème est tout simplement un fait de la vie.
C'est l'inconvénient de l'utilisation de Perl, PHP, Python, etc pour les produits de votre navire. Il n'y a pas beaucoup que vous pouvez faire vraiment.
Dupe? stackoverflow.com/questions/261638/how-do-i-protect-python-code
Oui, c'est un dupe. Ce n'est pas subjectif, il n'existe pas de moyens techniques pour protéger le code.
Ah, merci pour le lien. J'ai soumis une demande pour fermer cette comme une dupe, mais il a besoin de plus de deux utilisateurs de faire de même.
OriginalL'auteur Eddie Parker | 2009-01-24
Vous devez vous connecter pour publier un commentaire.
La sécurité par l'obscurité jamais œuvres. Si vous devez utiliser une licence propriétaire, de l'exécuter par le biais de la loi, pas à moitié cuit, de la dissimulation de tentatives.
Si vous êtes inquiet au sujet de leur apprentissage de votre sécurité (cryptographie) de l'algorithme, la même chose s'applique. Vrai, utile, algorithmes de sécurité (comme AES) sont en sécurité, même si l'algorithme est entièrement connue.
N'a pas l'industrie des médias prouvé sur la musique/films? Ils n'ont tout simplement pas wised jusqu'à...
OriginalL'auteur Matthew Flaschen
Même si vous utilisez un langage compilé comme le C# ou Java, les gens peuvent effectuer de l'ingénierie inverse, s'ils sont motivés et techniquement compétent. L'Obfuscation est pas une protection fiable contre cette.
Vous pouvez ajouter l'interdiction de la rétro-ingénierie à votre contrat de licence utilisateur final pour votre logiciel. La plupart des propriétaires des entreprises ce faire. Mais cela ne veut pas empêcher la violation, elle ne vous donne qu'un recours juridique.
La meilleur solution est d'offrir des produits et des services dans lesquels l'accès de l'utilisateur à lire votre code ne doit pas nuire à votre capacité de vendre votre produit ou service. La Base de votre entreprise sur le service fourni, ou d'un abonnement pour les mises à jour périodiques de données, plutôt que le code lui-même.
Exemple: Slashdot rend en fait le code pour que leur site web est disponible. Est-ce à nuire à leur capacité de gérer leur site? No.
Un autre remède consiste à définir votre prix à un point tel que l'effort de pirate votre code est plus cher que de simplement acheter légitimes des licences pour l'utilisation de votre produit. Joel Spolsky a fait une recommandation à cet effets dans ses articles et podcasts.
OriginalL'auteur Bill Karwin
L'expédition d'un commercial application de bureau mac en Python, nous faisons exactement comme décrit dans les autres réponses; vous protéger par la loi avec un décent CLUF, pas par le brouillage.
Nous n'avons jamais eu de problèmes avec les gens de l'ingénierie inverse de notre code. Et si nous le faisons, je suis convaincu que nous pouvons prendre des mesures juridiques. Donc oui, c'est un fait de la vie. Mais qui n'est pas trop dur de vivre avec. Juste avoir un bon avocat qui écrit un décent CLUF.
OriginalL'auteur Koen Bok
Le mot que vous cherchez est embrouiller. Un rapide google révèle:
http://www.lysator.liu.se/~astrand/projets/pyobfuscate/
mais:
a) Si la violation du droit d'auteur devient un problème, alors la loi est de votre côté (aussi longtemps que vous d'inclure les mentions de droits d'auteur dans tous les fichiers).
b) Il est également possible de faire des profits sur des applications open source si vous êtes intelligent à ce sujet.
c) Si vous voulez que vos droits de Propriété Intellectuelle pour être vraiment sûr, la seule réponse est de ne pas laisser quelqu'un aurait-il en premier lieu: Écrire votre application comme une application web, (je recommande l'utilisation de django), et seul votre fournisseur d'hébergement web dispose d'un accès à votre code.
OriginalL'auteur alsuren
py2exe
Sur windows py2exe est un moyen de code de la navigation pour les utilisateurs finaux, py2exe bundles l'interpréteur python, les dll et votre code compilé en bytecode python.
Voici le bytecode python instructions pour obtenir une certaine idée de ce à quoi il ressemble:
http://www.python.org/doc/2.5.2/lib/bytecodes.html
Ou vous pouvez utiliser dis de démonter certains pyc/pyo fichiers.
Donc, à l'aide de py2exe est similaire à la distribution de python compilé (pyc/pyo) des fichiers.
Shedskin compilateur C++
La Shedskin compilateur compile un sous-ensemble de python, C++, vous pouvez compiler en code natif à l'aide de n'importe quel compilateur.
pypy
Je ne sais pas à propos de PyPy trop. Selon leurs docs Pypy est capable de générer du code C.
OriginalL'auteur George