0

私はFiddlerを使用していましたが、WebサイトがログインシステムでCookieをどのように使用しているかを現場で確認できます。私はHTTPの知識をある程度持っていますが、Cookieとそれらがサイト内でどのように使用されるかについて学んでいます。

当初、フォームを送信するとCookieが送信されないこと、および応答にCookie情報が含まれていることを前提としていました。Cookie情報はブラウザによって保存されます。

実際、正反対のことが当てはまるようです。情報を送信しているのはリクエストであり、サーバーは何も返しません。

この問題をいじくり回していると、ブラウザでCookieが削除されていても、サインインせずに見回している場合でも、クライアントは常にRequestVerificationTokenをサーバーに送信しているように見えることに気付きました。

なんでそうなの?

ありがとう

4

2 に答える 2

2

Cookie は、Set-CookieHTTP 応答ヘッダーを使用してサーバーによって設定されます。また、JavaScript を介して設定することもできます。

Cookie にはパスがあります。Cookie のパスが要求されているドキュメントのパスと一致する場合、ブラウザーはそのようなすべての Cookie をCookieHTTP 要求ヘッダーに含めます。

ユーザーに対する XSS 攻撃を避けるために、Cookie を設定または変更するときは注意が必要です。そのため、ログイン フォーム内に非表示の一意のシークレットを含め、Cookie を設定する前にそのようなシークレットを使用すると便利な場合があります。Refererまたは、HTTPヘッダーがサイトと一致することを確認するだけでもかまいません。そうしないと、悪意のあるサイトがフォーム フィールドをコピーし、自分のサイトでサイトへのログイン フォームを作成し、form.submit() を実行して、ユーザーを事実上ログアウトさせたり、無防備なユーザーを介してサイトにブルート フォース攻撃を実行したりできます。たまたま悪意のある Web サイトにアクセスしている可能性があります。

あなたRequestVerificationTokenが言及しているのはHTTP Cookieとは何の関係もありません。特定のサイトスクリプト言語で記述された一部のサイトが、Cookie設定ページをXSS攻撃から保護するために使用する実装の詳細のようです。

于 2013-03-16T21:50:36.407 に答える
0

Web サイトのページにアクセスすると、通常、応答 (ランディングしたページ) には、いくつかの Cookie を設定するための HTTP 応答のサーバーからの指示が含まれています。

ウェブサイトはこれらを使用して、あなたの行動に関する情報を追跡したり、将来または短期間の設定を保存したりできます.

Web サイトは、いずれかのページに初めてアクセスしたとき、または特定のページにアクセスしたときに、そうすることがあります。

ブラウザは、その後のリクエストで設定されたすべての Cookie をそのドメインに送信します。

考えてみてください。HTTP はステートレスです。ホームページにたどり着き、[背景を青色に設定] をクリックしました。次に、ギャラリーページに移動しました。次のリクエストはサーバーに送信されますが、サーバーは背景色の設定を認識していません。

リクエストに、あなたの好みをサーバーに伝える Cookie が含まれていれば、ウェブサイトはあなたの好みに合わせてサービスを提供します。

これで一通りです。別の方法はセッションです。Cookie は、クライアント側に保存される情報と考えてください。しかし、サーバーがあなたに関する一時的な情報をサーバー側に保存する必要がある場合はどうでしょう。Cookie で公開するには機密性が高すぎる可能性がある情報。Cookie はローカルにあり、簡単に傍受されます。

と聞かれるかもしれませんが、HTTP はステートレスです。正しい。ただし、サーバーは、セッション ID であるマップにあなたに関する情報を保持できます。このセッション ID は、クライアント側で Cookie として設定されるか、パラメーター内のすべての要求で再送信されます。現在、サーバーはキーを取得するだけですが、ログインに成功したかどうか、システムでの役割は何かなど、あなたに関する情報を検索できます.

うわー、テキストがたくさんありますが、お役に立てば幸いです。そうでない場合は、お気軽にお問い合わせください。

于 2013-03-14T21:49:07.937 に答える