使用Cache-Control: no-store头,禁止IE浏览器保存临时文件,保护机密信息-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

使用Cache-Control: no-store头,禁止IE浏览器保存临时文件,保护机密信息

简介: 通常,IE浏览器访问页面时,会在临时文件夹下保存页面的html,js,图片等等。 当页面上包含敏感信息时,这些信息也会存储在临时文件中。

通常,IE浏览器访问页面时,会在临时文件夹下保存页面的html,js,图片等等。
当页面上包含敏感信息时,这些信息也会存储在临时文件中。
这就造成了安全隐患。

用户可以设置浏览器在关闭浏览器时删除临时文件,或手工删除。
但从网站开发者的角度讲,无法要求用户这样做。那么,如何满足这样的需求呢?
能不能控制浏览器不保存临时文件呢?

可以,HTTP协议1.1版中,规定了缓存的使用。其中,
Cache-Control: no-store
这个应答头可以满足我们的需要。

从协议中摘抄的部分内容:

no-store指令的用途是阻止不经意间释放或保存敏感信息(例如,在备份磁带上)。
no-store指令应用到整个消息,且[可以]在响应或请求中发送。 若在请求中发送,缓存[禁止]保存该请求或任何对其响应的任何部分。
若在响应中发送,缓存[禁止]保存该响应或引起的请求的任何部分。 该指令应用到非共享和共享缓存。
“[禁止]保存”在本处意味着缓存[禁止]在内部保存信息到固定存储器上,
且[必须]在转发后尽可能迅速且最有效地尝试从非固定存储器上删除该信息。

该指令的用途是满足关心通过非可预料地访问缓存数据结构意外释放信息的确定用户和服务作者的规定要求。
使用该指令可能在一些情况下改进私密性的同时,我们提醒它”并非”在任何方式下都是可靠或充分的机制来确保私密性。
特别是,恶意或妥协缓存可能不认识或服从该指令,且通过网络可能易受偷听。

nginx配置:

location /no-store/ {
    add_header Cache-Control no-store;
}

参考HTTP协议:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.2

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章