0

バックアクションがないように、JSPでログアウトアクションを作成したいと思います。現在、session.invalidateメソッドを使用して既存のセッションを強制終了し、ログインページに移動しています。

ただし、ユーザーが戻るボタンを押した場合でも、ページの読み込みが妨げられることはありません。検索したところ、SSLのようなものがその目的で使用されていることがわかりました。SSL(フルフォーム以外:)(Secure Socket Layer))とは誰か教えてもらえますか?どのように使用されますか?

それ以外は、よく調べてみたらこのコードが見つかりました

<%
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
%>

このコードをbodyタグの先頭に保持していますが、機能していません。エラーは何でしょうか?「no-cache」の代わりに「no-store」を試してみましたか?誰かが私にさらに何を変更するか、またはその特定のコードをどこに保持する必要があるかを手伝ってもらえますか?これ以外に、別の解決策を持っている人はいますか?

前もって感謝します。

4

1 に答える 1

1

Cache-Controlヘッダーが不完全です。また、とが含まれている必要があります。no-storemust-revalidate

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.

参照:

これらのヘッダーは、ログインが必要なすべてのリクエストで設定する必要があることに注意してください。はるかに簡単なのは、そのための単一のサーブレットフィルタを使用して、すべてのJSPページに同じコードをコピーアンドペーストする必要がないようにすることです。上記のリンクには具体的な例が含まれています。ログインしているユーザーがいる場合は、それをチェックしているのとまったく同じフィルターでこれを行うことができます。とにかく、JSPファイル内にJavaコードを書くことはお勧めできませ

SSL(読み取り:HTTPではなくHTTPS)は、HTTPトラフィック全体がキャプチャされ、ネットワークトラフィックの途中にある悪意のあるプロキシ、ルーター、ウイルスなどによって読み取られる中間者攻撃を防ぐ場合にのみ役立ちます。送信されたログインデータや取得された応答などの潜在的に機密性の高い情報は、攻撃者にはプレーンテキストとして表示されます。SSLはこのトラフィックを暗号化して、攻撃者が読み取れないようにします。キャッシングと認証に関しては何もしません。SSLは、Webアプリケーションレベルではなく、サーバーレベルで構成されます。詳細については、サーバーのドキュメントをお読みください。例:Tomcat 7.0 SSL HOW-TO forTomcat7.0.x。

于 2012-03-20T18:36:57.577 に答える