HTMLおよびJSPページがキャッシュされ、Webサーバーから再取得されるのを防ぎます。

HTMLおよびJSPページがキャッシュされ、Webサーバーから再取得されるのを防ぎます。
ユーザーがログアウトした後、ブラウザの戻るボタンがクリックされると、Web アプリケーションは保護されたページを適切に保護できなくなります。セッションが破棄された後 (ユーザーがログアウトした後)、保護された JSP ページがブラウザに再度表示されます。
ただし、ユーザーが戻りページのリンクをクリックすると、Web アプリケーションはログイン ページにジャンプし、セッションが終了したことを通知します。ログインしてください。

上記の問題の根本は、ほとんどのブラウザに戻るボタンがあることです。

戻るボタンをクリックすると、デフォルトではブラウザは Web サーバーからページを再取得せず、ブラウザ キャッシュからページを読み込みます。

Java ベースの Web アプリケーションではこの機能は制限されず、この問題は PHP、ASP、.NET ベースの Web アプリケーションでも発生します。
幸いなことに、HTTP ヘッダー「Expires」と「Cache-Control」は、アプリケーション サーバーがブラウザーとプロキシ サーバー上のキャッシュを制御するためのメカニズムを提供します。

HTTP ヘッダー Expires は、キャッシュされたページの有効期限が切れる時期をプロキシ サーバーに通知します。
HTTP1.1 仕様で新しく定義されたヘッダー情報 Cache-Control は、ブラウザにページをキャッシュしないように通知できます。

戻るボタンをクリックすると、ブラウザはサーバーに再アクセスしてページを取得します。

Cache-Control を使用する基本的な方法は次のとおりです。
1) no-cache: キャッシュを強制的にサーバーから新しいページを取得する
2) no-store: いかなる状況でもページをキャッシュに保存しない

安全のためには、HTMLページとJSPの両方にいくつかの設定を追加するのが最善です。

HTML ページの場合は以下を追加します。

コードをコピー
コードは次のとおりです。

<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<meta HTTP-EQUIV="有効期限" CONTENT="0">

JSP ページの場合は以下を追加します。

コードをコピー
コードは次のとおりです。

<%
response.setHeader("Cache-Control","no-store");
response.setHeader("プラグマ","キャッシュなし");
response.setDateHeader("有効期限",0);
%>

それでおしまい。

<<:  CSS3 で QR コードスキャン効果を実装する例

>>:  AWS無料サーバーアプリケーションとネットワークプロキシ設定チュートリアルの詳細な説明

推薦する

Vue プロジェクトで SVG コンポーネントをパッケージ化して構成する手順

最近新しい会社に入社しました。プロジェクトに携わった後、タイトルアイコンが svg で作られていると...

イメージのパッケージ化とワンクリック展開を実現するためにDockerを組み合わせたアイデア

1. サーバーにDockerをインストールする yumでdockerをインストール設定ファイルを変更...

mysql データはどこに保存されますか?

MySQLデータベースの保存場所: 1. MySQLがMyISAMストレージエンジンを使用する場合...

Nginx は https ウェブサイト構成コード例を実装します

https ベースポート 443。これはキーと呼ばれるものに使用されます。これらのことを理解せずにで...

VMware kali仮想マシン環境の設定方法

1|0 カーネルをコンパイルする(1)uname -rコマンドを実行してカーネルバージョンを表示しま...

JavaScript の find() メソッドと filter() メソッドの違いのまとめ

目次序文JavaScript find() メソッドJavaScript filter() メソッド...

Dockerを使用してクローンリポジトリを使用してGitイメージを構築する

概要私は 1 年以上 Docker を使用しています。最近、サービスをすばやくオーケストレーションし...

Windows 上の MySQL バージョン 5.7 でエンコードを UTF-8 に変更する方法

序文MySQLの勉強を始めたばかりで、公式サイトから最新バージョン5.7.14をダウンロードしました...

HTMLインライン要素とブロックレベル要素の基本概念と使用例

HTML タグには、インライン要素とブロックレベル要素の 2 種類があります。まず、インライン要素と...

画像をクリックして切り替えるJavaScript

クリックして画像を切り替えることは、日常生活で非常によく行われることです。今日の練習は、画像を切り替...

Vue.js フロントエンドフレームワークにおけるイベント処理の概要

1. v-onイベント監視DOM イベントをリッスンするには、v-on ディレクティブを使用します。...

ReactにおけるRefの相互利用の詳細な説明

目次1. まずRefとは何かを説明しましょう2. フックでのrefの使用1. HTMLDomフックで...

派手なカルーセル効果を実現するJavaScript

この記事では、JavaScriptで派手なカルーセル効果を実装する2つの方法を紹介します。具体的な内...

HTMLファイルで外部CSSファイルを導入する場合のパスの書き方について簡単にまとめます

1. 外部CSSファイルの基本スタイルをインポートする<link> タグを使用して外部ス...