0

皆さんに質問があります。私は現在、PHPで書かれたある種のライセンスシステムを作成しています。そしてもちろん、これは安全なシステムである必要があり、ライセンスはさまざまな方法でチェックする必要があります。有効期限を確認する必要があるときに問題が発生しました。

基本的に、タイムゾーンの現在時刻(GMT +1)を取得したいと思います。ただし、今回はリアルタイムであり、ソフトウェアの所有者が変更できないことを確認する必要があります。ライセンスの有効期限が切れた場合、所有者はサーバーの時計を変更したり、ライセンスを再度有効にする可能性のある他のことを行ったりすることはできません。

他の人が編集できないため、cURLリクエストを送信してそこから指定された時間を確認するなど、サーバーで確認することを考えていました。その場合、所有者は私のドメイン/ IPをIPブロックするだけで、サーバーは現在の時刻を確認するために接続しません。もちろん、私のWebサイトが過去10回応答しない場合は、「ライセンスを終了」することができます。しかし、私がDDoSed /攻撃を受けた場合、もちろん、それは良い顧客に影響を与えるべきではありませんか?

では、PHPで、GMT +1で現在の「世界時計」を取得する方法はありますか?そして、サーバーの所有者は、いかなる方法でも時計を変更できないようにする必要があります。

アイデア?コード例?

ありがとう!

アップデート

コードは暗号化されているため、ソースコードにアクセスすることはできず、暗号化されたコードにのみアクセスできます。

4

2 に答える 2

1

PHP は、システム管理者が変更できるシステム クロックを常に使用します。NTP サービスまたは世界時計 WebService を使用して現在の世界時間を取得できますが、そのためインターネット接続が必要です。

別の考え: サーバー管理者として、ネットワーク ファイルシステムや認証を含む多くのアプリケーションにとって正確なサーバー時刻が重要であるため、ライセンスの有効期限が切れるのを避けるために運用サーバーのシステム クロックを操作することはおそらくないでしょう。

クライアントがソースコードを持っていない/操作できない場合は、定期的にシステム時刻をデータベースや暗号化ファイルなどに記録し、最初の実行に基づいてランタイムを計算し、重要な時刻の変更を確認できます。

于 2013-01-07T15:17:13.693 に答える
0

簡単に言えば、あなたがやろうとしていることはできないということだと思います。

あなたのクライアントはサーバーにアクセスできます(サーバーの時計を変更してホストをブロックできるというステートメントで知られています)。

これは、クライアントがソースコードを変更したり、任意のフープを飛び越えてライセンスを破棄したりできることを意味します.

PHP では、コードの改ざんを困難にしようとすることになります。

もちろん、ある種の難読化ツールを使用して、そのように処理することもできます。

ただし、私のアドバイスは、クライアントを信頼し、クライアントにソースコードを提供することです。ライセンスを持たないユーザーに更新や修正をプッシュしないでください。

さらに収益化が必要な場合は、サポート時間などを請求してください。

DRM ではなく機能のコーディングに時間を費やし、より良い製品を手に入れれば、クライアントは喜んでお金を払ってくれます!

これがお役に立てば幸いです。

于 2013-01-07T15:21:43.420 に答える