12

獲取私人信息在用戶註銷後,如果他們打後退按鈕,就可以回到他們在註銷前的最後一頁。如何清除瀏覽器緩存用戶註銷後,以防止通過「後退」按鈕

我工作的應用程序通常會在公用計算機上使用(庫或計算機實驗室,例如),我想,以防止用戶能夠看到從以前的用戶會話東西。

我on Rails的3和設計,順便說一句,儘管它似乎這個問題會拿出任何框架或登錄機制。

是使用頁眉/元標籤禁止瀏覽器緩存解決?任何人都知道解決這個問題的寶石或教程?

期待您的建議。

回答

2

是的,您必須使用http頭來指示瀏覽器不要緩存頁面。來自OWASP的此page()包含有關如何執行此操作的信息。

按您可以設置下列頭指示瀏覽器不緩存的頁面上面的文章:

HTTP/1.1: 
Cache-Control: no-cache 

HTTP/1.0: 
Pragma: no-cache 
Expires: <past date or illegal value (e.g., 0)> 

希望這有助於。

+0

感謝您的信息。這將處理安全問題,但是如果緩存關閉,性能會受影響,不是嗎?用戶將不得不在每個頁面加載下載所有靜態資產。這似乎是一個棘手的問題要解決。在這種情況下,如何平衡安全與性能有什麼聰明的想法? – bowsersenior 2010-11-09 19:02:54

3

正在使用Rails,您可以使用積極的緩存輕鬆設置放置在public文件夾中的所有內容,並挑選其他可以安全緩存的內容,如公共「about」頁面。

您應設置Cache-Control: no-cache以防止瀏覽器緩存包含敏感信息(基本上只有通過正確登錄才能訪問的任何內容)的HTML頁面,XML和JSON,併爲靜態資產(如css和圖像)設置更積極的緩存。

  • 積極的高速緩存的好候選者是您的應用程序和公共頁面中使用的CSS和圖像。
  • 的無緩存較好的選擇是登錄(即,如果你是存儲應該是隻能訪問那朵主人的圖像,它不應該被緩存,如果你有autenticated用戶Ajax請求,這之後訪問什麼XML不應該被緩存)。
5

使用中的應用程序控制器下面的代碼..它爲我工作。 希望這會幫助你。 謝謝!

代碼

before_filter :set_cache_buster 

def set_cache_buster 
    response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate" 
    response.headers["Pragma"] = "no-cache" 
    response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT" 
end 
相關問題