獲取私人信息在用戶註銷後,如果他們打後退按鈕,就可以回到他們在註銷前的最後一頁。如何清除瀏覽器緩存用戶註銷後,以防止通過「後退」按鈕
我工作的應用程序通常會在公用計算機上使用(庫或計算機實驗室,例如),我想,以防止用戶能夠看到從以前的用戶會話東西。
我on Rails的3和設計,順便說一句,儘管它似乎這個問題會拿出任何框架或登錄機制。
是使用頁眉/元標籤禁止瀏覽器緩存解決?任何人都知道解決這個問題的寶石或教程?
期待您的建議。
獲取私人信息在用戶註銷後,如果他們打後退按鈕,就可以回到他們在註銷前的最後一頁。如何清除瀏覽器緩存用戶註銷後,以防止通過「後退」按鈕
我工作的應用程序通常會在公用計算機上使用(庫或計算機實驗室,例如),我想,以防止用戶能夠看到從以前的用戶會話東西。
我on Rails的3和設計,順便說一句,儘管它似乎這個問題會拿出任何框架或登錄機制。
是使用頁眉/元標籤禁止瀏覽器緩存解決?任何人都知道解決這個問題的寶石或教程?
期待您的建議。
是的,您必須使用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)>
希望這有助於。
正在使用Rails,您可以使用積極的緩存輕鬆設置放置在public
文件夾中的所有內容,並挑選其他可以安全緩存的內容,如公共「about」頁面。
您應設置Cache-Control: no-cache
以防止瀏覽器緩存包含敏感信息(基本上只有通過正確登錄才能訪問的任何內容)的HTML頁面,XML和JSON,併爲靜態資產(如css和圖像)設置更積極的緩存。
使用中的應用程序控制器下面的代碼..它爲我工作。 希望這會幫助你。 謝謝!
代碼
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
感謝您的信息。這將處理安全問題,但是如果緩存關閉,性能會受影響,不是嗎?用戶將不得不在每個頁面加載下載所有靜態資產。這似乎是一個棘手的問題要解決。在這種情況下,如何平衡安全與性能有什麼聰明的想法? – bowsersenior 2010-11-09 19:02:54