質問

現在、クライアント用に自分で開発したDjangoアプリをホストしていますが、自分でホストできるように人々に販売することを検討し始めています。

これは、Djangoアプリをパッケージ化して販売しながら、そのコードを著作権侵害や盗難から保護する方法です。たくさんの.pyファイルを配布することは、私がそれを販売する人々も単にコピーを作成して渡すことができるため、良いアイデアとは思えません。

この問題の目的のために、これを購入するすべての人が同じ(LAMP)セットアップを実行していると想定するのは安全だと思います。

役に立ちましたか?

解決

コードを難読化または暗号化しないでください。機能しません。

「サービスとして」Djangoアプリケーションを販売することをお勧めします。 -それらをホストするか、コードをサポート販売します。再配布を禁止する契約を作成します。

とはいえ、何らかの方法でコードを難読化することに決めた場合は、Pythonアプリケーションを完全に.pyc(Pythonコンパイルバイトコード)として配布できます。これがPy2Appの仕組みです。

再配布可能ですが、ファイルを編集するのは非常に困難です。そのため、いくつかの基本的なライセンスを追加し、いくつかの s ..

私が言ったように、暗号化や難読化などを介して海賊版対策に成功するとは思わない。複雑な復号化システム(そして、うまくいけばではなく、より良いアプリケーションを使用する経験をしてください)

他のヒント

これについては、次のようにします:

  1. すべてのコードを暗号化する
  2. マシンのホスト名とライセンスファイルを使用してサーバーに接続し、復号化キーを取得するインストーラーを作成し、コードを復号化してPythonバイトコードにコンパイルします
  3. (インストーラで)インポート時にマシンのホスト名とライセンスファイルをチェックし、一致しない場合は死ぬモジュールを追加します

これにより、ユーザーは、ホスト名が変更されたときと最初のインストール時にサーバーに接続するだけで済みますが、セキュリティの層は小さくなります。ホスト名をもっと複雑なものに変更することもできますが、本当に必要はありません-これを海賊版にしたい人は誰でもそうしますが、そのような単純なメカニズムは正直な人々を正直に保ちます。

全体をAmazon Machine Instance(AMI)としてパッケージ化し、 Amazon EC2 。このソリューションの良い点は、Amazonがを処理することです。 、およびマシンイメージ全体を配布しているため、すべてのクライアントが同じLAMPスタックを使用していることを確認できます。 AMIは暗号化されたマシンイメージであり、必要に応じて設定されます。

Amazonは、1回限りの料金、使用量ベースの料金、または月額料金でクライアントに請求することができます。

もちろん、このソリューションでは、クライアントがアプリをAmazonでホストし、適切な料金を支払う必要があります。

"暗号化" Pythonソースコード(またはバイトコード、またはPythonだけでなくそれを使用する任意の言語の実際のバイトコード)は、右マウスボタンを無効にしようとしてWebページに配置するJavaScriptの小さなものに似ており、" now you画像を盗むことはできません!"

回避策は簡単であり、決心した人を止めることはありません。

Pythonソフトウェアの販売を真剣に考えているなら、真剣に行動する必要があります。弁護士に支払いをしてライセンス/契約条件を作成し、購入時に人々に同意してもらい、実際のソフトウェアを入手させるだけです。これは、ライセンス/契約条件に違反する場合は法廷に連行する必要があることを意味しますが、何をしようとも(たとえば、誰かが「暗号化」を破ってソフトウェアの配布を開始した場合)、実際に適切な形式の法的単語を既に署名し、紙に書き留めておくことは、長期的にはビジネスにとってはるかに良いことです。

あなたが本当に「盗む」人々に対して偏執的なそれならただし、ソフトウェアはホストモデルに固執するだけで、サーバーへのアクセスは許可しません。多くの成功したビジネスはそのモデルに基づいています。

あなたは本当にそれを望んでいる人々からソースコードを守ることは決してできないでしょう。今すぐこの事実を把握し、後で頭痛を解消するのが最善です。

友達として率直に話してもいいですか?アプリが本当にすばらしいものでない限り、多くのバイヤーを獲得できない可能性があります。なぜ弁護士、難読化、ライセンス、その他に時間を浪費するのですか?コードをオープンソース化して、それを維持することで、より良い評判を得ることができます。

Djangoは、ライセンス(および難読化)のスペクトルのオープンソースの端から来ています。確かに、MITライセンスはGPLよりも一般的です。それでも、どちらもMicrosoftのEULAのようなものからはかなり離れています。多くのDjangophilesは、Microsoftがそうしているという理由だけで、クローズドソースコードを嫌います。

また、人々はあなたのコードをより信頼し、それを読むことができ、悪意のあるコードが含まれていないことを確認できるようになります。覚えておいてください、「難読化」は、「隠す」という意味です。そして、誰があなたが何を隠したかを正確に本当に知っているでしょうか?

確かに、オープンソースのコードを収益化する簡単な方法はありません。しかし、すべてのすばらしい仕事に感謝している人のために、サービスを提供したり、Pledgie.comにキャンペーンを投稿したりすることもできます。

考慮したいことの1つは、FogBugzの機能です。ターゲットプラットフォーム用にコンパイルされ、ライセンスを検証するコードを含む小さなバイナリ(おそらくCプログラム)を含めるだけです。

こうすることで、頭の痛みを最小限に抑えつつ、正直な人を正直に保つことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top