5

私は台本を持っていて、それを何人かの人々に売っています。クライアントリストにないWebサイトでスクリプトが機能しないようにする方法が必要です。

  • まず、PHPコードを暗号化するためにIonCubeを使用しています。
  • サーバーデータベースにすべてのクライアントがあります。
  • 各クライアントには、ドメイン名、電子メール、名前、電話があります。

人々が私のスクリプトを盗むのを防ぐための最良の方法は何ですか?

スクリプトでライセンスキーを作成する方法について読んだので、ライセンスのないスクリプトは機能しません。しかし、私の許可を得ずにライセンスキーを生成する方法はたくさんありますか?

クライアントリストにスクリプトがない限り、必要なのはドメイン名でスクリプトをアクティブ化しないことだけです。

4

7 に答える 7

6

あまりにも多くのPHP開発者が同じことを不思議に思っているので、あなたの質問は非常に興味深いものです。製品の盗難やコピーから保護するにはどうすればよいですか?

貪欲ではないというコメントもありますが、実は多くの人が生計を立てるためにプログラムしているので、趣味で作ったソフトウェアだけでなく、自分の仕事であり、お金を払う価値があります。他の職業と同じように。

悲しいことに、PHPは保護するのが非常に難しい言語ですが、いくつかの指針を示します。

1)暗号化を信頼しない:コードを暗号化解除するためのツールが多すぎることを確認しました。ZendGuardのように信頼していたツールも脆弱です。私が見た中で最も高度なツールは、数分でコードを明らかにすることができます。

編集:暗号化について言及するのを忘れたもう1つのこと。コードを機能させるには、サーバーに特定の特別なモジュールをインストールする必要があります。これは、共有ホスティングを使用し、暗号化解除モジュールをインストールできないすべての人にとって大きな問題です。

2)難読化を試してください:コードはまだ読み取り可能ですが、難読化ツールが変数の混合、意味のない関数の追加、関数内での関数の作成に優れている場合、コード自体はほとんど変更できなくなるため、試してみるのは無意味ですそれを変更します。

3)難読化を利用してソフトウェア自体にドメインロックコードを挿入する:ライセンスファイルの代わりに、ソフトウェア自体にドメイン検証コードを入れてソフトウェアを特定の顧客に販売するだけで、難読化と組み合わせたアプローチが可能になります他のドメインで機能させるために何を変更すればよいかを理解するのは非常に難しいので、おそらく目標を達成するでしょう。

4)優れたソフトウェアを作成する:これは最も重要な部分であり、人々が喜んでお金を払う優れたソフトウェアを構築し、そのための適切なWebサイトを作成し、そこに情報を広めます。

私はあなたを助けたことを願っています。

于 2012-12-16T03:12:55.453 に答える
6

アドビやマイクロソフトなどが海賊を積極的に追跡しないのには理由があります(彼らが海賊を積極的に追跡しないと言っているわけではありません。叙事詩的で絶対主義的なレベルではありません)。通常、単純なライセンスとサポートの構造で、製品を必要とする合法的な企業や関係者から利益を得ることができます。

誰かにコードを渡そうとすると、技術的な保護は敗北の戦いです。そのため、SaaSは非常に人気があります。

于 2012-12-16T03:20:51.070 に答える
2

クライアントリストにスクリプトがない限り、必要なのはドメイン名でスクリプトをアクティブ化しないことだけです。

十分に絞り込みました。

秘密鍵を使用してライセンス署名domain.name文字列を発行する場合は、openssl証明書、チェックコードへのハードコード公開部分を作成し、ライセンスで署名部分をライセンスとして発行します。

$lic=<<<EOL
LICENSE CODE HERE - SIGNATURE of string contained domain name
EOL;

ライセンスを確認するためのコード内:

include 'license.php';
$cert=<<<EOK
PUBLIC KEY DATA HERE
EOK;
$pub_key=openssl_get_publickey($cert);
$ok = openssl_verify($_SERVER['SERVER_NAME'], $lic, $pub_key);
if ($ok !== 1) {die ('bad license!')}

すべてを可能な限り暗号化する必要があります。

これはおそらく特別に細工されたlibopensslバイナリに対して脆弱ですが、お役に立てば幸いです。このようなコードの実行を回避するには、次のような条件を追加できます。

if (int(random()*100))==6) {check_license();}

ただし、どの部分を保護するかによって異なります。

また、コードのすべての部分で、ライセンスチェックコードを含むファイルのmd5summをチェックする必要があります。

于 2012-12-16T03:43:07.833 に答える
2

あなたが提供するスクリプトベースのコードをロックダウンする唯一の本当の方法は、あなたが制御するサーバー上でそのコードのコア部分を実行し続けることです-そしてあなたがあなたのクライアントに与えたコードをあなたに「コールホーム」させることです実行ごとにサーバー。次に、要求しているIPに基づいて、この「callhome」スクリプトへのアクセスをブロックするだけです。

また、この「コールホーム」メカニズムでは、単純な接続テストまたはハンドシェイクを実行するだけでは問題があります。これは回避できるためです。サーバー上のスクリプトは、クライアントが実行できるように、システム全体に不可欠な処理を実行する必要があります。知らないうちにコードを他の場所で使用するには、欠落している部分を書き直す必要があります。これは、いくつかの重要な計算またはデータ提供である可能性があります。

多くのクライアントがリモートサーバーを呼び出すスクリプトを好まないため、これは明らかに理想的ではありません。さらに、ネットワークとサーバーが要求の数を処理できることを確認する必要があります。そうしないと、クライアント自身のシステムの速度が低下したり、タイムアウトしたりします。

于 2012-12-16T03:08:56.297 に答える
2

http://www.ioncube.comを使用してソースコードを難読化するか、http: //www.phplicengine.comを使用してリモートまたはローカルでphpコードのライセンスを取得できます。

于 2014-08-01T05:23:27.863 に答える
1

これに対する他のポスターからのいくつかの良いコメントがあります。使用しているionCubeEncoderのエディションに応じて、必要な機能がすでに存在します(ProおよびCerberus)。必要に応じて独自のライセンスレイヤーを作成できる機能も含まれますが、そうすべきではありません。必要。いくつかの基本的な手順で最大の成果が得られます。他の人が言っているように、大規模なライセンスインフラストラクチャを使用することは一般的に価値がありません。ライセンスの主な利点は、不正行為や支払いをしないことに熱心な人を止めることではなく、支払いをしている顧客を一列に並べることから来ることにも注意してください。

ソフトウェアが使用されているドメインごとに料金があるとします。これについてどこかで言及しているが、それを強制するために何もしなかった場合、正直な顧客が2番目のドメインでスクリプトを試し、それが機能することを発見した場合、彼らはお金を払うべきだとさえ気付かずに単にそれを使用する可能性があります。対照的に、ソフトウェアが新しいライセンスが必要であるという事実を警告する場合、2番目のドメイン用に購入する可能性があります。

現実的には、最も断固とした泥棒を止めることは不可能であり、1つのポスターがそれを回避することで、詐欺師がソフトウェアをまったく使用しないのではなく無料で使用することは長期的には有益かもしれませんが、ライセンスは間違いなく正直な大多数からの収入を閉じ込めることができます良いソフトウェア(さらにサポート、バグ修正、アップグレードなど)を喜んで購入しますが、そうしないのは愚かなことです。

于 2012-12-17T22:19:00.047 に答える
1

私の考えでは、nullになるコードを正常に保存することはできません。Non-Freeアプリの作成方法は本当に好きではありませんが、私はあなたを判断しません。多くの人(ウェブサイトを読む)はホスティングが非常に制限されており、ioncubeをインストールできないため、コードを保護するための最善の解決策は価値がない場合があります...最善の保護は、さまざまな種類の保護に参加することです(例:IonCube+注入されたライセンス接続さまざまな場所にあるさまざまなコードのデータサーバー+サイトでsslを使用する必要がある場合は、データサーバーで公開キーチェックを使用してsslを販売することで保護を試みることができます)、または他の多くの方法でクリエイティブ)

しかし、私が言ったように、非常に高い保護が必要な場合は、安価なホスティングを使用しているため、それを作成するためのお金が失われ、顧客を失うことでお金が失われます...

あなたはすべてについて考える必要があります...

言うのを忘れた:サーバーでのホスティングは最善の保護ですが、欠点があります:「テンプレート」サイトの可能性を追加する必要があります、いくつかのプラグインを作成するためのアクセス、および同様のもの...ホストされているサーバー上のすべてのデータ。

私は何とか助けたと思います...

于 2012-12-16T02:55:36.733 に答える