首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP/Struts 徹底解決用戶登出後退按鈕安全隱患

     編輯:關於JSP

問題本質

用戶登出調用 session.invalidate() 後,瀏覽器「後退」按鈕仍可從快取顯示受保護頁面,造成資安疑慮。單純關閉瀏覽器或 JavaScript 方案皆不穩健。

核心解決策略

  1. 伺服器端驗證:每個受保護頁面/Action 先檢查 Session 中是否存在登入憑證 (如 session.getAttribute("User")),無則導向登入頁。
  2. 防快取 Header:回應加入 Cache-Control: no-store, no-cache, must-revalidate、Pragma: no-cache、Expires: 0,禁止瀏覽器快取敏感頁面。
  3. 登出流程:移除 Session 屬性 → invalidate() → 導向登入頁(而非單純顯示登出成功頁)。

Struts 整合優雅實作

  • 定義基底 Action,execute() 先檢查登入狀態,未登入直接 return mapping.findForward("login")。
  • 登出 Action 僅執行 session.invalidate() 並轉向登入頁。
  • 利用 Struts 宣告式攔截(或 Filter)集中處理防快取 Header,避免重複程式碼。

測試驗證

方案在 IE、Netscape、Mozilla、Firefox、Avant 通過測試:登出後點「後退」一律導回登入頁,無敏感資料洩露。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved