学习笔记:如何阻止Web应用存储敏感数据

在某些情况下,自定义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等代理服务器来检查服务器的响应,并检查包含敏感信息的每个页面。在这些网页中,确保服务器正在发送正确的响应头域,并指示浏览器不缓存任何数据。交流Q2881064156

时间: 2024-08-09 10:44:47

学习笔记:如何阻止Web应用存储敏感数据的相关文章

PHP学习笔记-PHP与Web页面的交互2

转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51761308 本文出自:[顾林海的博客] 前言 在<PHP学习笔记-PHP与Web页面的交互1>笔记中讲解了form表单的一些属性,包括它的输入域标记.选择域标记和文字域标记的写法,接下来的内容就是讲如何获取表单数据以及PHP数据的传递,包括对各种控件值的获取. 插入表单 提交表单之前一定得有表单,当我们的表单创建完毕后可以将表单插入Web页中,代码如下: <

Java学习笔记一:对象与存储

1.用引用来操作对象 Java是面向对象的编程语言,一切都能看作是对象,通过引用来完成对对象的操作. // String 是对象,而s对指向这个String对象的引用 String s; 注意:我们是通过对象的引用来操纵对象数据的,如果对象没有关联数据(如没有被初始化),则会出现空引用,报空指针异常:java.lang.NullPointerException 2.数据存储 (1)寄存器:位于CPU内部,是处理最快的区域,但是存储空间有限.Java不能通过程序直接控制. (2)堆栈:位于RAM(

【学习笔记】移动Web手册(PPK力作)

又是好久没写博客了,最近把近半年的总结,全部总结到博客园吧.先写最近的一个移动端的学习笔记.毕竟移动端开发了一段时间,就写一写度<移动web手册>中,对我感触比较深的几个点—— 一.浏览器相关 1. 浏览器的类型——内置浏览器.可下载浏览器.代理浏览器以及webview.这里的代理浏览器是指服务端进行对页面的渲染,把结果发送给客户端进行显示,比较少见. 2. 内置浏览器的升级——大多数内置浏览器都被紧密集成到底层的操作系统中,也就是说,无法单独升级浏览器.因此,为了得到新的Safary版本,你

HTML5 学习笔记(三)——本地存储

目录 一.HTML4客户端存储 1.1.提交表单发送到服务器的信息 1.2.客户端本地存储概要 二.localStorage 2.1.添加 2.2.取值 2.3.修改 2.4.删除 2.5.跨页面与跨域 2.6.存储位置与SQLite 2.7.用途.练习与兼容性 三.sessionStorage 3.1.sessionStorage使用 3.2.Web本地存储事件监听 3.3.cookie.sessionStorage.localStorage比较 四.Web SQL Database 4.1.

【安全牛学习笔记】ACUNETIX WEB VULNERABILITY SCANNER

ACUNETIX WEB VULNERABILITY SCANNER 自动手动爬网,支持AJAX.JavaScript AcuSensor灰盒测试 发现爬网无法发现文件 额外的漏洞扫描 可发现存在漏洞的源码行号 支持PHP..NET(不获取源码的情况下注入已编编译.NET) 生成PCI.27001标准和规报告 网络扫描 FTP,DNS,SMTP,IMAP,POP3,SSH,SNMP,Telent 集成openvas扫描漏洞 [email protected]:~# cp /media/sf_D_

【安全牛学习笔记】?ACUNETIX WEB VULNERABILITY SCANNER

ACUNETIX WEB VULNERABILITY SCANNER 自动手动爬网,支持AJAX.JavaScript AcuSensor灰盒测试 发现爬网无法发现文件 额外的漏洞扫描 可发现存在漏洞的源码行号 支持PHP..NET(不获取源码的情况下注入已编编译.NET) 生成PCI.27001标准和规报告 网络扫描 FTP,DNS,SMTP,IMAP,POP3,SSH,SNMP,Telent 集成openvas扫描漏洞 [email protected]:~# cp /media/sf_D_

dataquest学习笔记之 python web scrawl 之working with api

dataquest是一个不错的网站,里面的课程短小精炼,非常适合初学者快速入门,并建立一个完善的知识体系. 我是在某 宝上买的 月租dataquest, 一个月也才90元, 链接如下: https://item.taobao.com/item.htm?id=564528265057 本文是学习working with api and web scrapy的笔记; 网站的API都放在服务器上, 客户端向服务器请求api的时候,服务器会一个JSON数据,在Python中,我们一般使用requests

Python学习笔记-实现探测Web服务质量

pycurl是一个用C语言写的libcurl Python实现,功能非常强大,支持的操作协议后FTP.HTTP.HTTPS.TELNET等,可以理解成Linux下curl命令功能的Python封装,简单易用 本例通过调用pycurl提供的方法,实现探测Web服务质量的情况,比如响应HTTP状态码.请求延时.HTTP头信息.下载速度等,利用这些信息可以定位服务响应慢的具体环节. pycurl.Curl()类实现创建一个libcurl包的Curl句柄对象,无参数. close()方法,对应的libc

JavaWeb学习笔记——开发动态WEB资源(八)

会话: cookies: (1)cookies是WEB服务器发送到浏览器的简短文本信息 (2)cookies可以禁用 httpsession: 一次会话是从你打开浏览器开始到你关闭浏览器结束 提供一种方式在多个页面请求间确认用户或者存储关于用户的信息: (1)可以将httpsession理解成一个比request大的缓存