手把手教你阻止Web应用存储敏感数据

日期: 2014-12-09 作者:Michael Cobb翻译:邹铮 来源:TechTarget中国 英文

在某些情况下,自定义Web应用会保存敏感(专有)数据到用户的缓存文件夹中。如果不重新架构该应用,使用Sysinternals SDelete的注销脚本是否可以确保数据完全被删除且没有任何可恢复残留呢

Michael Cobb:Secure Delete或SDelete是Windows命令行使用程序,它可以用来安全地删除现有文件以及磁盘未分配部分的文件数据。然而,你并不能使用它来清除远程用户设备中的数据;你的Web应用开除的注销脚本不会被授予权限来运行这种强大的工具,对于Web应用数据保护,这是完全错误的工具。还有更有效的方法来确保敏感数据不会被保留在用户的缓存文件夹中。

浏览器保存页面资源有两个目的:历史记录和缓存。历史记录功能允许用户快速还回以前浏览过的页面,而缓存则用来提高性能。下载的内容(例如标志或博客文章)被存储在用户设备的缓存文件夹中,这样每次用户观看内容时就不用重复下载。因缓存或历史记录目的而存储的内容随后都可以通过查看浏览器的缓存或者简单地按下浏览器的“后退”按钮来查看。这可能让信用卡信息和用户名等敏感数据面临风险。

为了避免这种隐私威胁,我们没有必要重新设计应用,只需利用数字证书和每个网页中的一些额外的缓存控制头域就可以解决缓存信息的问题。首先安装一个Web服务器证书,并通过HTTPS提供所有内容;这将为应用和用户之间传输的数据提供保密性。由于浏览器有不同的默认行为来缓存HTTPS内容,包含敏感信息的页面应该包括缓存控制头域,以确保内容不会被缓存。为了涵盖各种浏览器版本,避免内容被缓存的完整头域应该是:

具体如下:

• 缓存控制“no-store”将防止请求和响应被缓存存储
• 添加“private”将放置代理服务器缓存页面
• 通过设置“must-re-validate”,“Back”按钮不再会显示敏感数据
• “max-age”选项表明响应被缓存的时间,将其设置为“0”可以防止缓存

现在的浏览器往往较少依赖于“Expires”头域,但为了确保安全性,企业应该将过期时间设置为“0”,以防止较旧浏览器的缓存。为了与HTTP/1.0兼容,响应还应该包括“Pragma: no-cache”头域。“no-transform”对移动用户很重要,因为有些移动运营商会压缩或修改内容来节省带宽。

在部署这些变更后,开发人员应该测试应用不再泄露敏感数据到浏览器缓存。对每个主流浏览器的缓存文件夹的手动搜索可以确保不会存储敏感数据。如果发现数据,使用WebScarab等代理服务器来检查服务器的响应,并检查包含敏感信息的每个页面。在这些网页中,确保服务器正在发送正确的响应头域,并指示浏览器不缓存任何数据。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

翻译

邹铮
邹铮

相关推荐