Question

J'héberge actuellement une application Django que j'ai moi-même développée pour mes clients, mais je commence maintenant à envisager de la vendre à des personnes pour qu'elles puissent se héberger elles-mêmes.

Ma question est la suivante: comment puis-je emballer et vendre une application Django, tout en protégeant son code contre le piratage ou le vol? Distribuer un tas de fichiers .py ne semble pas être une bonne idée, car les personnes à qui je le vendrais pourraient aussi en faire des copies et les transmettre.

Je pense que pour résoudre ce problème, il serait prudent de supposer que tous ceux qui l'achèteraient exécuteraient la même configuration (LAMP).

Était-ce utile?

La solution

N'essayez pas d'obscurcir ou de chiffrer le code - cela ne fonctionnera jamais.

Je suggérerais de vendre l'application Django "en tant que service". - hébergez-le pour eux ou vendez-leur le code et supportez . Rédigez un contrat qui leur interdit de le redistribuer.

Cela dit, si vous étiez déterminé à masquer le code d’une manière ou d’une autre, vous pouvez distribuer les applications Python entièrement au format .pyc (code octet compilé Python). C’est ainsi que Py2App fonctionne.

Il sera toujours redistribuable, mais il sera très difficile d'éditer les fichiers. Vous pourrez donc ajouter des éléments de licence de base sans avoir à faire échouer quelques #. s ..

Comme je l’ai dit, je ne pense pas que vous réussirez à lutter contre le piratage via le cryptage, l’obscurcissement, etc. Selon vos clients, un simple contrat et, peut-être, des contrôles très simples iront beaucoup plus loin que certains autres. système de déchiffrement compliqué (et améliorer l'expérience d'utilisation de votre application mieux au lieu de espérons-le, pas pire )

Autres conseils

Voici comment je procéderais:

  1. Crypter tout le code
  2. Écrivez un programme d'installation qui contacte le serveur avec le nom d'hôte et le fichier de licence de la machine et obtient la clé de déchiffrement, puis déchiffre le code et le compile en bytecode python
  3. Ajouter (dans le programme d'installation) un module qui vérifie le nom d'hôte et le fichier de licence de la machine lors de l'importation et meurt s'il ne correspond pas

De cette façon, l'utilisateur ne doit contacter le serveur que lorsque le nom d'hôte change et lors de la première installation, mais vous bénéficiez d'une petite couche de sécurité. Vous pouvez changer le nom d’hôte en quelque chose de plus complexe, mais ce n’est vraiment pas nécessaire - quiconque veut pirater un tel piratage le fera, mais un mécanisme simple comme celui-ci permettra aux honnêtes gens de rester honnêtes.

Vous pouvez tout empaqueter en tant qu'AMI (Amazon Machine Instance), puis leur faire exécuter votre application sur Amazon EC2 . L’avantage de cette solution est qu’Amazon prendra soin de facturation pour vous et puisque vous distribuez l’ensemble de l’image de la machine, vous pouvez être certain que tous vos clients utilisent la même pile LAMP. L’AMI est une image d’ordinateur chiffrée qui est configurée comme vous le souhaitez.

Vous pouvez demander à Amazon de facturer au client des frais uniques, basés sur l'utilisation ou mensuels.

Bien entendu, cette solution nécessite que vos clients hébergent leur application sur Amazon et paient les frais appropriés.

" Cryptage " Le code source Python (ou bytecode, ou vraiment bytecode pour tout langage qui l’utilise - pas seulement Python) est comme ces petites choses en JavaScript que certaines personnes mettent sur des pages Web pour essayer de désactiver le bouton droit de la souris, en déclarant ne peux pas voler mes images! "

Les solutions de contournement sont triviales et n’arrêteront pas une personne déterminée.

Si vous êtes vraiment sérieux au sujet de la vente d'un logiciel Python, vous devez agir avec sérieux. Payez un avocat pour établir les conditions de licence / contrat, demandez aux gens de les accepter au moment de l’achat, puis laissez-les simplement disposer du logiciel. Cela signifie que vous devrez engager des poursuites judiciaires si elles enfreignent les termes du contrat de licence / licence, mais vous devez le faire de toute façon (par exemple, si quelqu'un casse votre "cryptage" et commence à distribuer votre logiciel), et Disposer de la forme juridique appropriée, déjà écrite sur papier, avec sa signature, sera bien meilleur pour votre entreprise à long terme.

Si vous êtes vraiment ce paranoïaque à propos des personnes "voler", votre logiciel, cependant, ne vous contentez que d’un modèle hébergé et ne leur donnez pas accès au serveur. De nombreuses entreprises prospères sont basées sur ce modèle.

Vous ne pourrez jamais garder le code source des personnes qui le souhaitent vraiment. Il est préférable de comprendre ce fait maintenant et de vous épargner le mal de tête plus tard.

Puis-je parler franchement, en tant qu'ami? À moins que votre application ne soit vraiment incroyable, il est possible que vous n'ayez pas beaucoup d'acheteurs. Pourquoi perdre du temps en avocats, obscurcissements, licences, etc.? Vous gagnerez en réputation en ouvrant votre code de manière ouverte ... et en le maintenant.

Django vient de l’extrémité open-source du spectre des licences (et des obscurcissements). Certes, la licence MIT est plus commune que la GPL; ils sont néanmoins très éloignés de tout ce qui ressemble au CLUF de Microsoft. De nombreux djangophiles s’opposeront au code source fermé, tout simplement parce que c’est ce que fait Microsoft.

De plus, les utilisateurs feront davantage confiance à votre code, car ils seront en mesure de le lire et de vérifier qu'il ne contient pas de code malveillant. Rappelez-vous, " obscurcir " signifie "se cacher;" et qui saura vraiment exactement ce que vous avez caché?

Certes, il n’existe pas de moyen simple de monétiser le code open source. Mais vous pouvez proposer vos services ou même publier une campagne sur Pledgie.com, pour ceux qui vous remercient pour votre excellent travail.

Une chose que vous voudrez peut-être prendre en compte est ce que FogBugz fait. Incluez simplement un petit fichier binaire (peut-être un programme C) compilé pour les plates-formes cibles et contenant le code permettant de valider la licence.

De cette façon, vous pouvez garder les honnêtes gens honnêtes avec un minimum de maux de tête.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top