76

まず第一に、私は奇跡を探しているわけではありません... PHP がどのように機能するか、暗号化を使用せずにクライアントからコードを隠す方法がないことを知っています。ただし、実行中のサーバーにインストールする拡張機能のコストがかかります。

私は何か違うものを探しています...コードを暗号化したり、難読化したりするつもりはありません。暗号化/難読化されたコードのない多くの PHP スクリプトがありますが、それらは商用アプリケーションです。たとえば、vBulletin や IP.Board フォーラム アプリケーションなどです。

これらの人がアプリケーションにどのようなアプローチを使用しているかを知りたいだけです...

また、他の提案も受け付けています。

私は独身で、会社で働いていないことに注意してください。私の製品も非常に具体的で、それほど売れません。誰かを訴えたり、商用ライセンスを準備したりするために法律の専門家に相談する余裕がないことを皆さんに知ってもらいたいだけです. シンプルな製品を保護する簡単な方法を探しているだけです。実際に可能であれば、どうにかして...

4

10 に答える 10

37

物事を難読化することは、正当で法を遵守する顧客に迷惑をかけるだけであり、あなたをだますような人々は、いずれにせよ、あなたの対象となる支払い顧客ではありません. (難読化に関する他の考えを編集しました)

ソフトウェアを保護するためのもう 1 つの提案は、コードが製品の価値の一部であるというビジネス モデルを作成することです。たとえば、サイトで管理している一部のデータへのアクセスと一緒に製品ライセンスを販売したり、サブスクリプション モデルまたはカスタマー サポートで製品のライセンスを取得したりできます。

EULA の設計は法的な問題であり、コーディングの問題ではありません。使用している製品や Web サイトの EULA テキストを読むことから始めることができます。興味深い詳細が見つかるかもしれません!

プロプライエタリ ライセンスの作成は非常に柔軟であり、厳密にはコーディングに関するものではないため、StackOverflow の意図した範囲を超えている可能性があります。

頭に浮かぶ EULA のいくつかの部分:

  • 製品にバグがあったり、損傷が生じたりした場合の責任の制限。
  • 顧客がライセンスを取得したソフトウェアをどのように使用できるか、期間、マシンの数、再配布権の有無などを詳しく説明します。
  • 彼らのサイトを監査する権利を与えることで、ライセンスを強制することができます。
  • EULA に違反した場合 (たとえば、ソフトウェアを使用する権限を失うなど) はどうなりますか。

商用 EULA を作成するには、法律の専門家に相談する必要があります。

編集:このプロジェクトが弁護士の費用を正当化できない場合は、次のリソースを確認してください。

于 2008-12-03T02:20:26.900 に答える
15

目的を考慮する必要があります。

1)人々があなたのコードを読んだり変更したりできないようにしようとしていますか? はいの場合は、難読化/暗号化ツールが必要です。Zend Guardを使用して成功しました。

2)コードの無許可の再配布を防止しようとしていますか?? EULA/専有ライセンスは、それを防止する法的権限をあなたに与えますが、実際にそれを止めることはありません. キー/アクティベーション スキームを使用すると、使用状況を積極的に監視できますが、コードも暗号化しない限り削除できます。Zend Guard には、特定のスクリプトを特定の顧客のマシンにロックしたり、必要に応じて期間限定バージョンのコードを作成したりする機能もあります。

私は vBulletin などに精通していませんが、暗号化/難読化するか、ユーザーが正しいことを行うことを信頼する必要があります。後者の場合、彼らは、望ましくないと思う行動を禁止する EULA と、EULA の違反をバックアップする法制度を持つという保護を受けます。

ソフトウェアを保護するために法的措置を講じる準備ができていない/可能でなく、暗号化/難読化したくない場合、オプションは次のとおりです。 b) オープンソース ライセンスの方が適切かどうかを検討し、再配布のみを許可します。

于 2008-12-03T03:04:31.070 に答える
6

しばらくの間、VBulletin のソース コードを見ていませんでしたが、2003 年頃に彼らが行っていた方法は、サーバーへの呼び出しをコード内に埋め込むことでした。IIRC、それは非常に長いコード行(200〜300文字以上の長さなど)にあり、いくつかの文字列連結などに分割されていました.

あなたが海賊版を作ったとしても、それは何も「悪い」ことをしませんでした-フォーラムはまだ100%機能していました. しかし、あなたのサーバーの IP は他の情報と共に記録されており、彼らはそれを使用して調査し、法的措置を講じました。

この通話にはライセンス番号が埋め込まれていたため、特定のライセンス コピーが実行されている IP/Web サイトの数を簡単に追跡できました。

于 2008-12-03T03:08:57.643 に答える
3

自分でホストし、Web 経由でアクセスする「クラウド アプリ」を作成できない場合は、仮想サーバー (VMWare、Parallels、Sun などから) を使用して仮想アプライアンスを作成し、「lite」をインストールすることを検討できます。その上の Linux の " バージョン。PHP コードを仮想環境に配置し、仮想マシンをサーバーにインストールします。ルートへのロードを防止する方法を必ず作成してください。もちろん、これにはクライアント自身を物理的に訪問することが含まれます。

于 2009-08-17T17:59:34.243 に答える
1

彼らは独自のライセンスの下でソフトウェアを配布しています。法律は彼らの権利を保護し、顧客がソースを再配布することを防ぎますが、そうするのに実際には問題はありません.

しかし、ご存知かもしれませんが、ソフトウェア製品の著作権侵害 (著作権侵害) は非常に一般的な現象です。

于 2008-12-03T02:17:07.107 に答える
1

私の意見では、念のため、あなたの php コード プログラムがスタンドアロン モデル用に書かれている場合... 最善の解決策は c) Phalanger (.NET) のようなコンテナーで php をラップすることができます。誰もが知っているように、特にプログラムがWindowsユーザーを対象としている場合は、システムにしっかりとバインドされています. .NET/VB/C# などの Windows プログラミング言語または .NET prog.lang.family セットで知っているもので、独自の保護アルゴリズムを作成できます。

于 2011-10-29T17:23:53.377 に答える
0

PHP アプリケーションを他のアプリケーションから本当に保護する唯一の方法は、ソース コードを共有しないことです。コードをオンラインのどこかに投稿したり、何らかの媒体で顧客に送ったりすると、あなた以外の人がコードにアクセスできます。

コードのすべてのコピーに一意の透かしを追加できます。こうすることで、リークを特定の顧客にまでさかのぼることができます。(しかし、コードはすでにあなたのコントロールの外にあるので、それはあなたを助けますか?)

私が目にするほとんどのコードには、ライセンスとおそらく保証が付いています。スクリプトを変更しないようにスクリプトの先頭に行けば十分でしょう。自己; オープン ソースでないコードを見つけた場合、それを自分のプロジェクトでは使用しません。私は少しだまされているかもしれませんが、私の OSS 以外のコードを使用しないことを期待しています!

于 2008-12-03T23:49:57.077 に答える
0

SD PHP 難読化ツールを参照してください。PHP ファイルの巨大なシステムを処理します。PHP サーバーでのランタイム要件はありません。追加のランタイム オーバーヘッドはありません。

[2016 年 5 月編集] 最近の回答では、Zend は PHP5.5 を処理しないことが指摘されています。SD PHP 難読化ツールが行います。

于 2009-09-04T03:51:47.737 に答える
0

Zend Guard は php 5.5 をサポートしておらず、元に戻すのは簡単です。難読化のためにhttp://www.ioncube.comにアクセスしてください。http://wwww.phplicengine.comでは、スクリプトのライセンスをリモートまたはローカルで取得できます。

于 2014-08-01T06:47:46.770 に答える
-6

だから私に見させてください、私たちはアダムとイブにいくつかの禁断の果実が木にあることを示したいと思います、そして私たちは彼らが食べないようにする方法が欲しいです...

炎の聖剣を持った天使がいるのはどうですか?

  1. 素朴に聞こえるかもしれませんが、あなたのアプリケーションが実際に何をしているのかわかりませんが、インクルードの広範な使用についてはどうでしょうか?

  2. 正当なユーザーにとって、表示されるべきすべてのソフトウェアですか、それともその一部のみですか?ソースコードのコピーを難読化して正当なものに渡すことができるからです

  3. PHPをPhalanger(.NET)のようなコンテナーにラップすることができます

  4. おそらく、外部からの盗難に関心があります。つまり、顧客がコードを使用するときに、コードがWeb上で自由に表示されます。これは、安価なWebサイトホスティングに投資する価値があります。年間50ドルで、正当な顧客をコードにシリアルで登録し、アプリに定期的にWebサイトに情報を投稿させます。少なくとも、コードが危険にさらされたことを検出できます。n日後に自己破壊してプッシュすることができ、顧客に連絡してシリアルを変更するのに十分な時間を与えることができます。これは、コード全体の唯一の難読化されたinclude()である可能性があります

于 2011-03-31T00:51:45.960 に答える