0

realmの使用法を本当に知りたいです。 http://en.wikipedia.org/wiki/Basic_access_authenticationは言った

既存のブラウザーは、タブまたはブラウザーが閉じられるか、ユーザーが履歴を消去するまで、認証情報を保持します。[1] HTTP は、サーバーがこれらのキャッシュされた資格情報を破棄するようにクライアントに指示する方法を提供しません。これは、ブラウザを閉じたり、URL でセッションを使用したりせずに、サーバーがユーザーを「ログアウト」する効果的な方法がないことを意味します。

私のコーディングで

res.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
res.setHeader("WWW-Authenticate", "Basic realm=\"Alfresco\"");

そのため、サイトはレルムに基づいて認証を要求します。要求すると、ユーザー名とパスワードがどこかに保存され、ブラウザのキャッシュまたは閲覧履歴が削除されるまで、この情報は保存されます。

私の質問は、サーブレットを使用してサーバーでそのような資格情報をクリアする方法はありますか? どんな助けでも大歓迎です!!!

参照: セキュリティにおける REALM 用語の正確な使用法は何ですか?

4

2 に答える 2

1

サーバーがブラウザに対してそのようなレベルの制御を行うことはありません。アカウントの詳細情報の漏えいに対処する唯一の安全な方法は、アカウントを即座に無効化またはロックし、それに関連付けられているすべてのユーザー セッションを期限切れにすることです。Web サーバーは、このようなすべての操作を実行できます。

仕様から:

   The realm attribute (case-insensitive) is required for all
   authentication schemes which issue a challenge. The realm value
   (case-sensitive), in combination with the canonical root URL of the
   server being accessed, defines the protection space

これは基本的に、一度認証に成功すると、ブラウザーは同じルート URL の下にあるすべてのリソースに同じ資格情報を使用してアクセスできると安全に想定できることを意味します。HTTP 基本資格情報にクライアント タイムアウトを設定する標準的な方法はありません。

于 2012-10-03T12:39:43.597 に答える
1

おそらく、この答えを見たいと思うでしょう:セッションを無効にした後、Jetty に BASIC 認証で資格情報を要求するように強制する方法は?

基本認証は私には役に立たないようです。

できればフォーム認証に切り替えたい。

于 2012-10-04T08:39:51.953 に答える