web-dev-qa-db-ja.com

クライアントサーバーで実行されている私のphpコードを保護する方法は?

クライアントサーバーで実行されているコードが変更またはコピーされないように保護する方法を教えてください。
標準のApache Php Mysqlスタックを備えたUbuntuサーバーで実行されています。
必要なソフトウェアはすべてオープンソースであることが望ましいでしょう。

ライセンスの問題が発生した場合もアプリケーションを終了したいと思います。
私のコードを使用してこれを実行することは可能ですが、phpであるため、クライアントはこれを防ぐためにコードを変更できます。

6
HTDutchy

素晴らしいアルゴリズムを保護する必要がある場合は、認証済みのAPIを備えた独自のサーバーにコードを置いてアクセスし、そのAPIを使用するプログラムを配布し、そのAPIを使用するための資格情報を販売することができます。そうすれば、コードのアクセスを自由に制御できるようになります。これは、ソフトウェアの違法コピー対策に非常に効果的なサービスタイプシステムとしてのソフトウェアです。

ただし、このシステムには多くの潜在的な欠陥があります。その1つは、会社がサーバーを削除すると、サービスを使用するための時間/お金の投資に伴ってサーバーも失うことを知って、このシステムを信頼するように顧客を説得することが非常に困難になることです。

また、受け取ったすべての顧客の結合されたトラフィックをサポートできる必要があることを考えると、コスト/メンテナンスはかなりの額になります。

人々があなたのサービスの支払いを続けるように、更新/サポートを提供する方がおそらく簡単でしょう。 Webページからのデータのコピーを無効にする 方法 に関するアドバイスを検討する価値はあると思います。開発の努力は正当なユーザーを困らせ、代わりにライセンスの支払いを続けることに付加価値を与えるかもしれません。

3
Joel

必要なソフトウェアは、オープンソースであることが望ましいでしょう。

私の知る限りでは、これは運が悪いです。 PHP '暗号化'はビジネスであり、オープンソースソリューションもそれを切り取らない/切り取らないだけです(私が見つけたものから、それらを倒すのに10分未満かかりました彼らが実際に行ったのはコードの_base64_encode_だけだったので、コードを数回ローテーションし、次にeval逆のプロセスを実行してコードを実行しました。evalechoで置き換えると、私が見た中で最高のものは、この種のことを防ぐために___LINE___のような魔法の変数を使用しましたが、経験豊富なPHP devに気付いたら、まだ簡単に倒すことができました。この。)。

IonCube を倒すのはまだかなり難しいので、ファイルを復号化するには、ファイルあたり$ 5〜$ 8以上の誰かに支払う必要があります。ファイルがたくさんある場合:これは財政的な障壁です。ライセンスオプションもあるので、コードが他のサーバーにコピー/貼り付けされないようにして、そのまま実行できます。

3
Jay

あなたは2つのオプションがあります:-

  1. クライアントを信頼することを学びます。
  2. ソフトウェアをコンパイルされた言語で再構成します(Java、C#は機能しますが、比較的簡単にリバースエンジニアリングできます。C、C++はリバースエンジニアリングすることはほとんど不可能ですが、WEBアプリケーションにはあまり適していません)。

また、適度に能力のあるプログラマーであれば、コードを確認せずにその動作を観察することによってのみシステムを再現できることを理解する必要があります。

3
James Anderson

この新しいオープンソースプロジェクトを見てください。

http://pecl.php.net/package/BLENC

BLENCは、Blowfish Encriptionを使用してPHPソーススクリプトを保護することを許可する拡張機能です。BLENCはZend Engineにフックし、PHPで以前にエンコードされたスクリプトを透過的に実行できるようにします。 BLENC。これは完全なセキュリティ用には設計されていません(XDebugなどのパッケージを使用してスクリプトをopコードに分解することは引き続き可能です)が、コードから離れてリバースエンジニアリングを困難にします。

0
Giuseppe C.