2011-10-20 16 views
5

誰もどのようにhttp://user:[email protected]認証が機能するか説明できますか?ブラウザはuser:passをbase-64でエンコードしたAuthorizationヘッダーを送信しますか?http:// user:[email protected]認証はどのように機能しますか?

ChromeデベロッパーツールでNetコンソールを開いたところ、http://user:[email protected]などのリクエストをしたところ、Authorizationヘッダーが追加されていません。

URLの前にuser:[email protected]を使用した場合にブラウザがパスワードを送信する方法が本当に不思議です。

+3

これは認証ヘッダーです。私はChromeがどうしているのか分からないが、Firefoxがあれば、サイトが(要求の中で)認証を求めているかどうかをチェックし、そうでなければ、あなたは「サイトにログインしようとしている」ということを警告する。 com "にユーザー名" user "を入力しますが、Webサイトには認証は必要ありません。これはあなたを騙そうとする試みかもしれません。 "stackoverflow.com"は訪問したいサイトですか?そして、[はい]は認証の詳細を切り捨てるか、[いいえ]は要求を打ち切ります。あなたが許可を得たサイトを持っていなければ、ヘッダーは表示されません。 –

答えて

3

ヘッダーを検査するには、認証が必要なサーバーに対してテストする必要があります。クライアントは、サーバが要求する認証方法(基本またはダイジェスト)をクライアントが知らないため、サーバが要求するまで、Authorizationヘッダを送信しません。


HTTP認証が2つの要求で行われる:

まず、任意Authorizationヘッダなしで要求が送信されます。 サーバーは、クライアントに認証方法を知らせるWWW-Authenticateと応答します。これには、領域名と認証方法が含まれます(これは基本またはダイジェストのいずれかです)

クライアントは、追加のAuthorizationヘッダーを持つ新しい要求を送信します。 HTTPSを使用していない限り、今パスワードは、輸送中の見える

Authorization: Basic dXNlcjpwYXNz 

basic authenticationの場合には、このヘッダは、あなたが言っているのと同様に、エンコードされたばかりuser:pass base64です。より良い選択肢はdigest authenticationであり、WWW-AuthenticateAuthorizationの両方の内容はwikipedia articleで最もよく説明されています。 :)

関連する問題