私は、ユーザーが Web サイトにアクセスする必要がある基本的な Web サイトを作成しています。最初の訪問の場合は、いくつかの情報が表示されます。すべてのユーザーが Cookie を有効にするわけではないため、Cookie を使用したくありません。IP の問題は、ほとんどが動的であるため、あまり効果的でないことです。
また、使用できるライブラリはありますか?
IP はユーザーを識別しません。ネットワーク上のノード (ファイアウォール、NIC など) を識別するだけです。Cookie を使用せずにこれをグローバルに伝える方法は実際にはありません。アプリケーションに返してもらうには、マシンに何かを保存する必要があります。セキュリティ上の理由から、ブラウザは匿名です。人々は何かを特定することを志願しなければなりません。
この問題を回避する方法は、MySQL でのセッションと共にユーザーの対話をログに記録することです。Javascript を使用しているかどうか、Cookie が有効になっているかどうかを確認します。Cookie が有効になっている場合は、一意の ID を渡します。そうでない場合は、データを無視します。Cookie または JavaScript がオンになっている場合は、DB に追加のフラグを作成します。彼らが個人を特定する情報を提出した時点で、私は彼らの記録をファイル上の残りの情報と組み合わせることができます.
Amazon のように [address] バーを介して $_GET vars を渡すことで、これを行う昔ながらの方法があります。サイト上のすべてのボタンとリンクで POST フォームを使用することもできます (ただし、面倒です)。ただし、情報をハッシュして転送し続けない限り、情報を信頼することはできません。ハッシュを常にチェックして、クエリ行が変更されていないことを確認してください。
したがって、ユーザー ID を渡す場合、アドレス バーは次のようになります。
<?php
function addrAppend($uid){
//secret word would be something that you know so it works like a pre-shared key.
$hash = md5($uid."secretword".$_SERVER['REMOTE_ADDR']);
$app="?uid=$uid&hash=$hash";
return $app;
}
?>
ユーザーの IP アドレスをハッシュしており、ユーザーがプロキシを使用している場合、これは失敗することに注意してください。代わりに、いつでも OS をハッシュできます。
これをインラインで行うのは、形が良くないので嫌いですが、レイアウトで呼び出す場合は、「>My Link」と言うことができます。
次のページのチェックと検証では、次のようなことができます。
if(!empty($_GET['hash'])){
if ($_GET['hash']==md5($temp_UID."secretword".$client_ADDR)){
//then it's unaltered assuming they didn't guess your hashing convention
} else {
//then they altered the get vars so flush the info or end().
}
}
}
最新の Web ブラウザーを使用している場合は、localStorage を使用します。
https://developer.mozilla.org/en-US/docs/DOM/Storage#localStorage
プロレベルの追跡ソリューションを構築したい場合。ユーザーから次のものを保存できます。
もちろん、これらすべてが必要なわけではありません。これらのサブセット ( IP
、Screen resolution
、 などUserAgent
) をユーザーの指紋として使用するだけで十分です。
どのように私は知っていますか?
以前はCross browser fingerprinting
テクノロジーを使用していました。詳細については、こちらをご覧ください:
http://fingerprint.pet-portal.eu/
実際、ユーザーがブラウザを変更したとしても、実際のエントリとリピーターを追跡できます。
IP は、ユーザーを識別するための最良の方法です。明らかに変わる可能性がありますが、それが実際のやり方です。