簡體   English   中英

由於網頁的緩存版本,我如何消除安全風險

[英]how do i remove the security risk, due to cached version of page

請參考鏈接

為什么即使在所有銷毀代碼之后,session變量的值仍然保留?

在上面的問題是由我做的登錄功能失敗,因為瀏覽器正在顯示頁面的緩存版本,我也不知道為什么能夠在一定的時間限制內執行所有功能,之后它實現它得到了!

所以,

如何刪除網站的緩存版本,

要么

如何分辨不要讓我的副本在緩存中!!!

通過使用C#

您所能做的就是在您不希望瀏覽器緩存的頁面上添加過期元標記

<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="No-Cache, No-Store">

或者在頁面標記添加后在ASP.NET中交替使用

<%@ OutputCache Duration="0" Location="none" NoStore="true" %>

在C#背后的代碼中

Response.Cache.SetNoStore();
Response.Cache.SetExpires(DateTime.Now);
Response.Cache.SetCacheability(HttpCacheability.NoCache);

有關更多信息,請參閱http://msdn.microsoft.com/en-us/library/06bh14hk(v=VS.100).aspx

此處的更多詳細文章http://www.mnot.net/cache_docs/

編輯:在Alxandr的評論后更新

聽起來您在擔心客戶端頁面的緩存版本。 如果是這樣,您可以通過兩種主要方法來解決該問題。 您可以向HTTP標頭或頁面的META標簽添加no-cache屬性。 建議使用HTTP標頭方法

META標簽方法

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

HTTP標頭方法

Cache-Control: max-age=3600, must-revalidate

我下面引用的鏈接將為您提供有關HTTP標頭和META標頭的大量信息。 我建議您閱讀它以了解這些選項,並查看各種語言和HTTP Server的示例實現。

甜甜圈緩存和服務器端緩存將解決此問題。 在洞(甜甜圈中心),您驗證用戶的登錄。 如果無效,則執行重定向301到登錄頁面。

瀏覽器將在緩存中復制它的副本。 大喊大叫不會讓它消失。 除非你在其他地方做蠢事,否則這不應該是安全風險。 即使您確實存在安全問題,阻止緩存制作副本也無法解決問題。

所以:你可以阻止瀏覽器緩存,但它不是你想要做的。 瀏覽器仍然會將網頁的副本保存到硬盤中,它不會嘗試顯示它。 這些都不是安全問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM