4

キャッシュを有効のままにして、ログアウト後に戻ったときにユーザーが情報を表示できないようにする必要があります。

ログアウト + 戻るボタンでキャッシュされたページが表示されるのは、ブラウザー内の設計によるものであることは承知しています。キャッシュを無効にすることは、ログアウトを強制する方法であり、再検証を強制する方法であることを認識しています。

JSP(具体的にはCQ5)を使用すると、これは可能ですか?

次の解決策を念頭に置いていますが、ニーズに最適なアプローチがどれかわかりません。

  1. どこでもキャッシュを無効にします。これは機能しますが、使用している発行元がページの再アップに多忙になるため、受け入れられません。
  2. 「ログアウト」ボタンはページ A に POST します。ページ A はセッションを強制終了し、ユーザーをページ B に転送して「ログアウトしました」というメッセージを表示します。ページ B から "戻る" と、値を再投稿する必要があることについてブラウザが提供するメッセージが表示されます。はい = ユーザーはログアウトし (この時点では無害)、ページ B に再び転送されます。いいえ = ページ A に無害に座っています。ただし、「戻る」+「いいえ」+「戻る」では、キャッシュされたページにそれらが表示されるか、履歴から選択してもキャッシュされたページが表示されます。
  3. 「ログアウト」ボタンをクリックすると、新しいウィンドウが開き、セッションを終了するかどうかを確認/警告します。「きっと」は window.opener.reload() または window.opener.close() を実行します。しかし、JavaScript が無効になっていると、私たちは運命づけられます。
  4. 「ログアウト」は現在のページに投稿します。すべてのページで、何らかの POSTd 値の存在がチェックされます。存在する場合は、「ログアウトされました」というメッセージとともにページ B に転送します。#2に似ています。これにより、基本的にページが「ログアウトされました」ページに再キャッシュされますが、「戻る」または履歴にはページがキャッシュされたままになります。

ユーザーのキャッシュを手動でクリアしたり、キャッシュされたページでも検証チェックを強制する方法はありますか? 私はここでアイデアがありません...

4

1 に答える 1

0

ここでの問題は、秘密にしておくべきものをキャッシュしようとしていることです。パスワードの背後に情報をキャッシュすることは安全ではなく、危険です。

ただし、ページの一般的な html 部分をパスワードの背後にキャッシュすることは理にかなっている場合があります。この点では、ログインしているユーザーが見ることができるものは何でも問題ありません。重要なのは、ユーザー名、住所、電話番号などの特定の情報のみです。

別の JSON 呼び出しを行ってデータを取得すると、情報は軽量になりますが、システムにキャッシュされず、html 形式などでパディングされないため、安全です。

ページには、ユーザー セッションが何らかの理由で中断された場合にログイン チャレンジを表示するインテリジェンスを持たせることもできます。ユーザーは、戻るボタンをそのままにして、中断したところから再入力して続行します。

また、ID、アクションなどの機密情報が履歴に保持されている場合、それも問題になる可能性があると思います。

考慮すべき点がいくつかあります。

于 2014-01-08T00:56:38.843 に答える