42

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

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

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

4

7 に答える 7

62

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

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

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

再配布は可能です、ファイルを編集するのは非常に困難です。そのため、いくつかの基本的なライセンスを追加することができ、数#秒で失敗することはありません..

私が言ったように、暗号化や難読化などによる著作権侵害対策に成功するとは思いません.クライアントによっては、単純な契約と、おそらくいくつかの本当に基本的なチェックが、複雑な復号化システムよりもはるかに先に進むでしょう. (そして、願わくばこれ以上悪くならないようにするのではなく、アプリケーションの使用体験をより良くしてください)

于 2008-10-02T23:10:21.443 に答える
15

すべてを Amazon Machine Instance (AMI) としてパッケージ化し、Amazon EC2でアプリを実行させることができます。このソリューションの優れた点は、Amazon が請求を処理してくれることです。また、マシン イメージ全体を配布しているため、すべてのクライアントが同じ LAMP スタックを使用していることを確認できます。AMI は、必要に応じて構成された暗号化されたマシン イメージです。

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

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

于 2008-10-02T22:54:43.557 に答える
13

私がそれについて行く方法はこれです:

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

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

于 2008-10-02T22:40:24.200 に答える
10

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

回避策は些細なものであり、決心した人を止めることはありません。

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

ただし、自分のソフトウェアを「盗む」人に本当に偏執的である場合は、ホストされたモデルに固執し、サーバーへのアクセスを許可しないでください。多くの成功したビジネスは、このモデルに基づいています。

于 2009-01-15T07:01:38.453 に答える
7

ソースコードを本当に欲しがっている人々からソースコードを守ることはできません。この事実を今すぐ理解して、後で頭を悩ませないようにするのが最善です。

于 2008-10-03T14:48:12.870 に答える
4

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

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

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

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

于 2011-05-06T18:40:40.743 に答える
3

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

このようにして、あなたの側の頭痛を最小限に抑えて、正直な人々を正直に保つことができます.

于 2008-12-28T04:19:39.013 に答える