PHPでユーザーの一意性の「指紋」を生成する最良の方法は何ですか?
例えば:
理想的には、フィンガープリントはブラウザや「IP」ではなく「マシン」というラベルを付けるのが理想的ですが、これがどのようにして実現可能であるかは考えられません。
ユーザーを一意に識別する方法、およびメソッドの利点/欠点のアイデア/提案を受け入れる。
このサイトでは、ブラウザを使用して個人を区別するために使用できるほとんどすべての情報をカバーしています。
JavaScript、JavaとFlashは非常に役立ちます。
最も簡単で最良の方法:phps session-management を使用-すべてのクライアントにIDが付与されるか、Cookieに保存され(有効な場合)、またはすべてのリンクとフォームでget変数として付与されます。 (または、自分でCookieを設定することもできます)。ただし、これはブラウザの「指紋」のみです。ユーザーがブラウザを変更したり、Cookieを削除したりすると、それを識別することができなくなります。
すべてのクライアントをIPで識別することは通常悪い考えであり、機能しません。同じルーターを使用するクライアントは同じIPを持ちます-プロキシプールを介して接続されたクライアントは、ページの読み込みごとに別のIPを持つことができます。
クライアントが簡単に操作できないソリューションが必要な場合は、クライアントのブラウザーでサポートされているものをすべて使用して次の組み合わせを実行し、各ページ読み込みでそれらを比較してください。
これをすべて実装する evercookie と呼ばれるソリューションがあります
考慮すべきことは他にもあります。ユーザーのパブリックIPアドレスは、ページの読み込みごとに変わる可能性があるものです。
ルーターのパブリックIPを切り替えてトラフィックのバランスをとる組織が複数あります。
100%の信頼性を実現することは保証されていませんが、いくつかの一般的な方法を組み合わせると、有意義な結果が得られます
機能する可能性のある最も単純なルートを選び、必要に応じて時間をかけて調整します。
私は3つの異なるコンピューターとさまざまなハンドヘルドデバイスを使用しており、それらの多くには異なるブラウザーがインストールされています。私はこれらすべてを自宅で交換して使用し、他の場所に持っていくので、基本的にはさまざまなIPアドレスを使用します。私が指摘しようとしているのは、その目的のためにブラウザやマシンをフィンガープリントすることは、あなたの目標が人をブロックすることである場合、絶対確実なものになることは決してないということです。
別のアプローチを取ることをお勧めします。禁止されているユーザーのアイデンティティを示唆する入手可能な決定的でない情報に基づいて判断します(一般的でない場合は同じIPまたは同じユーザーエージェント、または使用可能なフォント、使用可能なプラグイン、非標準などのJavaScriptブラウザーのフィンガープリント方法の一部。ウィンドウサイズなど)、そして疑わしい訪問者に、より高い形式の身元確認を要求する-Facebook、Google +、Twitterなどのoauthなど。その後、そのソーシャルメディアを確認してください。アカウントは本物であるか、または回避するために作成されています。ユーザーベースがソーシャルメディアに精通していない場合や、ユーザーが禁止を回避しないことがどれほど重要であるかに応じて、電話検証APIもあります。