第1个回答 2017-03-13
通过这种方法,如果再浏览该页面的时候就可以提高反应速度,减少网络流量。然而,当用户从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响应头指针。