2013-09-25 133 views
4

我需要啓用緩存並禁用用戶在註銷後返回信息。如何在JSP中註銷後防止用戶返回,但保留緩存?

我知道在註銷+後退按鈕時顯示的緩存頁面是在瀏覽器中設計的。我知道,禁用緩存是強制註銷+回來強制重新驗證的一種方式。

使用JSP(特別是CQ5),這甚至有可能嗎?

我心裏有以下解決方案,但我不知道這是我需要的最佳方法:

  1. 禁用緩存無處不在。這是有效的,但是不可接受,因爲我們正在使用的發佈商將會忙於重新配頁。
  2. 「註銷」按鈕發佈到頁面A.頁面A殺死會話並將用戶轉發到頁面B並顯示一些「您已註銷」的消息。頁面B的「返回」將彈出消息瀏覽器提供的關於不得不重新發布值的消息。是=他們退出(此時無害)並再次轉發到頁面B.否=他們坐在Page A無害。但是,「返回」+「否」+「返回」可能會將它們置於緩存頁面上,或者歷史記錄中的選擇仍然會顯示緩存頁面。
  3. 「註銷」按鈕會彈出一個新窗口,詢問他們是否確定/警告他們關閉會話。 「我確定」做了一個window.opener.reload()或window.opener.close()。但是,如果JavaScript被禁用,我們註定要失敗。
  4. 「註銷」發佈到當前頁面。所有頁面都檢查一些POSTd值的存在。如果存在,轉到頁面B並顯示「您已被註銷的消息」。與#2類似。這實際上會將頁面重新緩存到「您已註銷」頁面,但「返回」或歷史記錄仍然會有緩存頁面。

是否有某種方法可以手動清除用戶的緩存,或者強制甚至在緩存頁面上進行驗證檢查?我在這裏沒有想法...

+0

只有約2%的用戶禁用了JavaScript。你的用戶是否這樣做? –

+0

我們可以假設每個人都有JS,並且可以優雅地退化,也許會有一條消息說「關閉瀏覽器」,但如果我們採取這種方法,那麼其中一個+消息說關閉瀏覽器似乎更好。 – oooyaya

+0

你想如何禁用緩存?你的意思是在瀏覽器中禁用它? – betatester07

回答

0

你的問題在於你試圖緩存一些應該保密的東西。緩存密碼背後的信息是不安全的,是一種風險。

但是,將一個頁面的通用html部分緩存在密碼後面可能是有意義的。任何登錄的用戶都可以看到這方面的情況。只有用戶名,地址,電話號碼等具體信息是敏感的。

如果你讓一個單獨的JSON調用拉下數據,該infomration將是輕量級的,但仍然是安全的,因爲它不會在系統上緩存,但也不是HTML格式等

的填充頁面還可以具有智能來顯示登錄挑戰,如果用戶會話因任何原因而被中斷,則他們重新打字並從他們離開的地方繼續,同時仍保持後退按鈕到位。

我也會想,如果有任何敏感信息被保存在歷史記錄中,比如id,action等,那麼這也是一個問題。

只需要考慮幾件事。

相關問題