0

私は、ユーザーが Web サイトにアクセスする必要がある基本的な Web サイトを作成しています。最初の訪問の場合は、いくつかの情報が表示されます。すべてのユーザーが Cookie を有効にするわけではないため、Cookie を使用したくありません。IP の問題は、ほとんどが動的であるため、あまり効果的でないことです。

また、使用できるライブラリはありますか?

4

4 に答える 4

1

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().
        }
      }

  }
于 2013-03-19T08:31:57.443 に答える
0

最新の Web ブラウザーを使用している場合は、localStorage を使用します。

https://developer.mozilla.org/en-US/docs/DOM/Storage#localStorage

于 2013-03-19T08:25:08.617 に答える
0

プロレベルの追跡ソリューションを構築したい場合。ユーザーから次のものを保存できます。

  1. IPアドレス
  2. オペレーティング システムの名前
  3. 画面の解像度
  4. タイムゾーン設定、
  5. パソコンにインストールされているフォント、
  6. ブラウザに関する情報を含む文字列 (つまり、ユーザー エージェント文字列)、
  7. テストの日時、
  8. ブラウザにインストールされているプラ​​グイン、
  9. 受け入れられる MIME タイプのリスト、
  10. ハッシュされたナビゲーター オブジェクト、navigator.doNotTrack および navigator.buildID の値、
  11. および生成された識別子。

もちろん、これらすべてが必要なわけではありません。これらのサブセット ( IPScreen resolution、 などUserAgent) をユーザーの指紋として使用するだけで十分です。

どのように私は知っていますか? 以前はCross browser fingerprintingテクノロジーを使用していました。詳細については、こちらをご覧ください: http://fingerprint.pet-portal.eu/

実際、ユーザーがブラウザを変更したとしても、実際のエントリとリピーターを追跡できます。

于 2013-03-19T08:36:52.603 に答える
-1

IP は、ユーザーを識別するための最良の方法です。明らかに変わる可能性がありますが、それが実際のやり方です。

于 2013-03-19T08:24:45.827 に答える