2012-07-09 268 views
3

我目前正在研究解決我遇到的問題的最佳方法,並且想知道您是否可以提供幫助。瀏覽器註銷後退按鈕

我在我的網站中有一個用戶配置文件部分,我想讓它更安全一些。

我有一個問題,當用戶登錄時,如果他們點擊後退按鈕,它會將他們帶回登錄頁面,但他們仍然登錄。我如何讓他登錄並將他們帶到註銷頁面?

感謝您的幫助

+0

您是否嘗試將緩存控制設置爲不緩存?即response.setHeader(「Cache-Control」,「no-cache」); – Misha 2012-07-09 15:50:01

+2

如果我是對的,你可以在會話中保存用戶數據。當您按下後退按鈕時,會話中將包含用戶數據,因此這是基本行爲。問題在於,如果用戶選擇註銷,按後退按鈕,他/她的所有數據仍然在網上。 – 2012-07-09 16:09:34

+0

他們如何登錄或註銷?我使用PHP來做這件事,我只是做一些事情,如果我所在的頁面是登錄頁面,會自動執行註銷操作。 – emilyk 2012-07-09 21:47:41

回答

0

我不確定您是否在嘗試做正確的事情。用戶知道並使用後退按鈕,如果該按鈕將他們帶回到他們之前正在做的事情中,則對他們有幫助。讓用戶自動登錄用戶可以打破關於Web應用程序如何工作的一些基本假設,我不建議您這樣做。

此外,問題比你想象的更糟糕。您提到了使用後退按鈕的用戶,但是如果用戶使用右鍵單擊 - 在新增選項卡中打開以打開查看您的應用程序的多個選項卡,然後在選項卡之間來回切換?

這就是說,這裏是一種方法,你可以實現你想要的。您需要跟蹤服務器上用戶會話中最近瀏覽過的頁面。每次獲得新請求時,都要與會話中的緩存值進行比較,如果不是可以在此導航的頁面,請清除該會話並顯示登錄頁面。另一種實現方法是在每個頁面顯示時生成一個密鑰(一個大的隨機數將會執行),並在後續請求中傳遞該密鑰,並且當請求任何頁面並且沒有最近的密鑰時清除會話並顯示登錄頁面。