热搜
您的位置:首页 >> 故事

如何規避客戶端瀏覽器緩存風險

2019年05月03日 栏目:故事

當瀏覽器向Web服務器請求一個頁面的時候,計算機就會把接受到文件或圖片放在它的緩存——本地計算機硬盤驅動中的一個目錄。通過這種方法,如果再閱

當瀏覽器向Web服務器請求一個頁面的時候,計算機就會把接受到文件或圖片放在它的緩存——本地計算機硬盤驅動中的一個目錄。通過這種方法,如果再閱讀該頁面的時候就可以提高反應速度,減少絡流量。然而,當用戶從Web服務器中提取敏感文件或者信息比如賬目信息或管理報告的時候,安全問題也會隨之產生。如果用戶在公共計算機上上閱讀,敏感數據在他離開之后還是會保留在計算機上。即使用戶在內上閱讀也還是存在這樣的風險。敏感數據能夠定時每晚備份,因此數據就會進入備份盤。所以Web研發者有阻撓敏感數據無意中的泄漏或保存在不該保存的地方。

许多Web研发假定在页上加入页源代码元标记(Meta tag),敏感文件就不能进入缓存,也就不能保存下来,于是上面的问题就迎刃而解了。

但是,只有少数浏览器缓存能识别这类Meta tag,代理服务器缓存就更少了。然而,HTTP 1.1引进了一种新的HTTP header——一种称作缓存控制反应的header,使用这种header,你能够控制上述两种浏览器处理Web页面的方式,并且保证敏感文件不进入缓存。HTTP header在一个页面的实际HTML内容之前就通过Web服务器产生并且发送出去。这种header只能通过浏览器和中介缓存才能被看见。

两个主要的缓存控制反应的header如下:

NO-CACHE:这个指令在每次发布缓存的副本之前,都会提示浏览器要从服务器提取文档进行验证。

NO-STORE:这个指令规定无论是远程还是本地缓存,是共享还是非共享缓存,在任何情况下都不能储存文档的副本。

我们注意到,no-cache实际上可以允许储存文档的副本,而no-store对此则是禁止的。也许你现在就可以想到,IE和Mozilla浏览器在执行缓存控制指令的时候是不同的。

两种浏览器只要装上"no-cache"指令装置,就都可以通过HTTP连接贮存需要的文件。Mozilla浏览器在默认的情况下是不能通过HTTP连接储存页面的,但是IE可以,除非使用者点击“不要将加密文件储存到硬盘”选项。Mozilla浏览器从来不贮存安装了"no-store"指令的文件,而IE只能在页面是通过HTTP连接的情况下才能完全遵守这个指令。因此,想确保你的敏感文档或者页面只有在使用者自己按下IE选项的时候才能被储存,你就要使用通过HTTP连接的"no-store"指令。所有支持HTTP 1.1的浏览器都支持该指令。

你能打开一个址的HTTP连接的头指特性表或者址的一个文件夹在IIS里设置no-store响应头指针。但是,这不是一个好方法,由于在全部络站点上使用这类头指针来全局访问整个络站点,的仅仅是贮存那些不需要缓存在客服端的文件而已。

河北钢铁集团整合冲刺矿山资源成亮点
我市召开十三届人大常委会第十三次会议
大南湖楹联擂台赛在我市拉开帷幕
  • 友情链接
  • 合作媒体