Webアプリケーションの開発やテスト中に、ベーシック認証の確認を行うことがあります。
しかし、一度認証を通過すると、その情報はブラウザに保存され、次回のアクセス時に自動的に認証情報が使用されます。
この挙動は便利な反面、認証情報をリセットしたいときには手間がかかります。
認証情報はどこに保存されている?
ベーシック認証情報は、ブラウザのセッション中にメモリ内に一時的に保存され、HTTP リクエストの Authorization
ヘッダーにエンコードされた形で送信されます。この情報は、ユーザー名とパスワードをコロン(:
)で結合し、Base64 でエンコードしたものです。
ベーシック認証情報はクッキーとは独立して管理されているため、クッキーを削除しても認証情報は残ります。また、ハードリロード(キャッシュのクリアとページの再読み込み)では、ページデータは新しくなりますが、認証情報には影響しません。
認証情報のクリア方法
1. ブラウザの再起動
ブラウザを完全に閉じてから再開します。これにより、ブラウザのセッションが終了し、メモリ内の認証情報がクリアされます。
2. シークレットモードの利用
シークレットモードでは、ブラウザが新しいセッションを開始し、ウィンドウを閉じるとすべてのセッションデータがクリアされます。認証情報もこれに含まれるため、テストのために一時的に情報をリセットしたい場合に便利です。
3. URLハックを利用した認証情報の上書き
URL にユーザー名とパスワードを含めることで、ブラウザに保存されている認証情報を上書きします。要するに、わざと認証に失敗するということです。
形式は ユーザー名:パスワード@サイトのURL
です。
ユーザー名: hoge
, パスワード: hoge
のサイトに
ユーザー名: fuga
, パスワード: fuga
でログインを試みたので失敗