7

クライアントのサーバーにアプリケーションをインストールする際、クライアント(またはクライアントの将来の開発者など)がアプリケーションをコピーして他のドメイン/サーバー/ローカルサーバーに配置しないようにしたいと思います。

インストールしたサーバーでアプリケーションが実行されていることを確認するにはどうすればよいですか?スクリプトを実行するたびにスクリプトに実質的な遅延が発生することは望ましくないため、「ハンドシェイク」方式は適切ではないと思います。

スクリプトを実行するたびに、スクリプトが自分のサーバー上のPHPページを要求できると考えていました。これにより、サーバーにサーバー情報とドメイン名が送信され、スクリプトで受け入れられたクライアントのデータベースと照合できます。リクエストが無効な場合は、サーバーが詳細をメールで送信する作業を処理して、フォローアップできるようにします。これは、応答を期待していないため、クライアントのスクリプトの速度を低下させることはなく、これを調査して個人的にフォローアップできるまで、クライアントの「無効な」サーバーで動作します。

これが最良の方法である場合(またはより良い方法がある場合)、サーバーのスクリプトを要求するためにどのPHP呼び出しを行う必要がありますか?file_get_contentscurlおよび同様のものは常に応答を取得するようですが、これは必要ありません。

アップデート

ご回答ありがとうございます。PHPはオープンソースであり、自由に編集できるようにする必要があることを完全に理解しています。最初はもっと明確に述べるべきでしたが、私の意図は、この検証方法が私のライセンス契約に違反している人を見つけるのを助けることでした。アプリケーションはライセンスの対象ですが、アプリケーションの最初の誤用を監視できるように、このチェックも含めたいと思います。

したがって、誰かがまだ私のライセンスに違反している可能性があり、気付かれることはほとんどありませんが、このスクリプトを実装すると、アプリケーションを分解せず、リッピングする前にベリファイアを削除しない「怠惰な強盗」の利点があります。

これはそのようなスクリプトの使用を正当化しますか?もしそうなら、cURLは私の最良の選択肢ですか?

4

7 に答える 7

2

検証用のチェックコードは、簡単に。に置き換えることができreturn true;ます。https://stackoverflow.com/tags/php/infoでよくある質問を見てください:

Q. PHPコードを盗難から保護できますか?もしそうなら、どのように?
A. PHPソースコードを保護、エンコード、または暗号化するための効果的な技術的ソリューションはありません。ある程度の保護を提供する製品はたくさんありますが、時間と労力をかけてすべてを壊すことができます。最善の選択肢は、技術的な解決策ではなく、ライセンス契約の形での法的解決策です。

于 2010-09-22T22:07:58.103 に答える
1

あなたは法的な合意を得て、みんなを訴えます。

于 2010-09-22T22:13:32.353 に答える
1

SaaSはあなたの友達です。独自の安全なサーバーでアプリケーションをホストし、顧客がそれにアクセスするためのライセンス料を請求します。

于 2010-09-22T22:16:33.110 に答える
0

imoこれを行ういくつかのjoomla拡張機能をチェックする価値があります。いくつかの異なる実装があり、実行前にドメインをチェックして検証するものもあります。ほとんどは、ドメイン検証とともに暗号化されています。これを行うために使用されたsakicのurlsef拡張子を覚えています。同じものを使用する商用拡張機能は他にもたくさんあります。それとは別に、私は別の方法を考えることはできません。おそらく別の良いアイデアは、適切なライセンスと優れた弁護士を用意することです。

于 2010-09-22T22:07:22.640 に答える
0

簡単な答え:これはできません。

長い答え:コードにどのような保護を加えても、PHPの経験がある人なら誰でも簡単に削除できます。コードがionCubeやZendGuardのようなものでエンコードされている場合でも、これも比較的簡単にデコードできます。

あなたの唯一の選択肢は、著作権侵害者を積極的に追求することによってあなたの知的財産を保護することです。RIAAとMPAAの人々はよく知っているので、これでも絶対確実ではありません。この時代では、これは解決可能な問題ではないと思います。

于 2010-09-22T22:09:11.170 に答える
0

電話と自宅の動作をソフトウェアに統合することもできますが、おそらく弁護士に相談して、それに関するプライバシーの問題について話し合い、クライアントの使用ライセンスのプライバシーガイドラインと利用規約を作成する必要があります。

注意すべきことの1つは、送信するデータ(および送信方法、つまり安全に暗号化されているかどうか)で、クライアントのインフラストラクチャを侵害したりスパイしたりする可能性があるため、製品を違法に使用しているクライアントを特定することです。あなたのクライアント。

電話ホーム機能に関しては、クライアントがそれを見つけて削除できることに注意してください。したがって、PHP難読化ツールまたはコンパイラを使用すると、これに対する追加の保護が提供される場合があります(ただし、十分に判断されたPHP開発者はおそらくこれを無効にすることができます)。あなたの保護は、回避のコストを近づけるか、合法的な使用のコストを超えることを目的とした抑止力としてのみ機能することに注意してください。

編集:ポーク
が質問コメントに書いた ように、クライアントのサイトにインストールされているソフトウェアの外部のコードの一部をサーバーに移動することはできますが、サーバーが何らかの理由(メンテナンスなど)で到達できない場合、これは逆効果になる可能性があります。

結局のところ、顧客満足度は、ソフトウェアを顧客から保護することよりも高く評価されるべきだと思います。つまり、顧客を怒らせる可能性のある保護を避けるようにしてください。

于 2010-09-22T22:14:17.063 に答える
-2

それをエンコードし、意図したドメインでのみ機能するようにするライセンスファイルをハードコーディングできます(たとえば、ioncubeまたはzendを使用して、ハンドシェイクを行わずにHTTP HOSTが意図したドメインであるかどうかを確認するファイルをエンコードします)。次に、そのファイルを他のすべてのファイルで必須にすることができます(すべてがエンコードされている場合)。

于 2010-09-22T22:06:04.333 に答える