1

http://www.somedomain.tld/page1.phpという Web ページを考えてみましょう 。誰かに page1.php の複数のインスタンスを開いてほしくありません。ユーザーが複数のブラウザーで同じページを開くと、警告メッセージが表示されて切断されます。

これを進める方法について何か提案はありますか?Cookie チェック、単純な .htaccess 実装、IP チェックの可能性はありますか?

シナリオに関してさらに説明が必要な場合はお知らせください。

LINKED:同じ IP からのユーザーによる複数ページ アクセスを制限する

編集: 「deceze」の指示​​を受け入れました。

@Mods : この質問を閉じてください。

4

3 に答える 3

2

したがって、ここにある 2 つのツールは IP と Cookie です。

IP はユーザーに固有のものではありません。それらを忘れてください。IP はルーティング データの配信メカニズムであり、ユーザーを識別するには粗すぎます。

Cookie はブラウザー間で共有されないため、Cookie クロスブラウザーを使用しているユーザーを識別することはできません。

さらに、Web はステートレスです。Web サイトが開いている間、ブラウザーとサーバーの間に持続的な接続はありません。ページが読み込まれると、ブラウザーで開いたままになりますが、サーバーとの間の通信は行われません。

このような状況を考えると、IP や Cookie を使用して要求したことを実行することは事実上不可能です。少なくとも、ユーザーが自分のアカウントからログアウトしたり、同じ IP を共有する人々が互いにデッドロックしたりするなど、いくつかの副作用はありません。

すべきことは、HTTP 要求のステートレスな性質を取り入れた方法でアプリを作成することです。一意の Cookie を付与することで、ユーザーを識別できます。逆に、Cookie を持たないユーザーは新規ユーザー (別のブラウザーを含む) です。この情報を活用してください。他の何かを行う前に特定のプロセスを終了する必要がある場合は、この状態をサーバー側で維持し、特定のユーザーに関連付ける必要があります。つまり、「Cookie XYZ を持つユーザーは、次にアクション C を実行する必要があります」の場合、ユーザーがサーバーに HTTP リクエストを送信すると、サーバーにリクエストを評価させ、ユーザーが行うべきことと一致するかどうかを判断せます。要求をリダイレクトまたは拒否することにより、適切に応答します。

于 2012-11-30T12:30:32.263 に答える
1

ログインがある場合、私の解決策はあなたのために働くかもしれません。

複数のブラウザを使用している場合は、2番目のブラウザでユーザーが再度ログインする必要があることを意味します。

したがって、DBにメモを取ります。ここには、ユーザー情報/ログイン情報が保存されており、一度ログインすると、再度ログインすることはできません...

異なるタブで同じブラウザからユーザーをブロックすることはできない場合があります

ありがとう

于 2012-11-30T12:03:55.683 に答える
0

IP アドレスを保存し、この値と要求された URL を毎回チェックします。これにより、誰があなたの Web ページを表示できるか (回数も) を決定できます。

同一IPからの同一ユーザーによる複数ページアクセスを制限する

于 2012-11-30T12:00:55.430 に答える