6)敏感数据

        是否存储机密信息
        如何存储敏感数据
        是否在网络中传递敏感数据
        是否记录敏感数据

        7)会话管理

        如何交换会话标识符
        是否限制会话生存期
        如何确保会话存储状态的安全

        8)加密

        为何使用特定的算法
        如何确保加密密钥的安全性

        9)参数操作

        是否验证所有的输入参数
        是否在参数过程中传递敏感数据
        是否为了安全问题而使用HTTP头数据

        10)异常管理

        是否使用结构化的异常处理
        是否向客户端公开了太多的信息

        11)审核和日志记录

        是否明确了要审核的活动
        是否考虑如何流动原始调用这身份

        2.应用及传输安全

        WEB应用系统的安全性从使用角度可以分为应用级的安全与传输级的安全,安全性测试也可以从这两方面入手。

        应用级的安全测试的主要目的是查找Web系统自身程序设计中存在的安全隐患,主要测试区域如下。

        注册与登陆:现在的Web应用系统基本采用先注册,后登录的方式。

        A.必须测试有效和无效的用户名和密码
        B.要注意是否存在大小写敏感,
        C.可以尝试多少次的限制
        D.是否可以不登录而直接浏览某个页面等。

        在线超时:Web应用系统是否有超时的限制,也是说,用户登陆一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。

        操作留痕:为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进入了日志文件,是否可追踪。

        备份与恢复:为了防范系统的意外崩溃造成的数据丢失,备份与恢复手段是一个Web系统的必备功能。备份与恢复根据Web系统对安全性的要求可以采用多种手段,如数据库增量备份、数据库完全备份、系统完全备份等。出于更高的安全性要求,某些实时系统经常会采用双机热备或多级热备。除了对于这些备份与恢复方式进行验证测试以外,还要评估这种备份与恢复方式是否满足Web系统的安全性需求。

        传输级的安全测试是考虑到Web系统的传输的特殊性,重点测试数据经客户端传送到服务器端可能存在的安全漏洞,以及服务器防范非法访问的能力。一般测试项目包括以下几个方面。

        HTTPS和SSL测试:默认的情况下,安全HTTP(Soure HTTP)通过安全套接字SSL(Source Socket Layer)协议在端口443上使用普通的HTTP。HTTPS使用的公共密钥的加密长度决定的HTTPS的安全级别,但从某种意义上来说,安全性的保证是以损失性能为代价的。除了还要测试加密是否正确,检查信息的完整性和确认HTTPS的安全级别外,还要注意在此安全级别下,其性能是否达到要求。

        服务器端的脚本漏洞检查:存在于服务器端的脚本常常构成安全漏洞,这些漏洞又往往被黑客利用。所以,还要测试没有经过授权,不能在服务器端放置和编辑脚本的问题。

        防火墙测试:防火墙是一种主要用于防护非法访问的路由器,在Web系统中是很常用的一种安全系统。防火墙测试是一个很大很专业的课题。这里所涉及的只是对防火墙功能、设置进行测试,以判断本Web系统的安全需求。

        另推荐安全性测试工具:

        Watchfire AppScan:商业网页漏洞扫描器(此工具好像被IBM收购了,所以推荐在第一位)

        AppScan按照应用程序开发生命周期进行安全测试,早在开发阶段进行单元测试和安全保证。Appscan能够扫描多种常见漏洞,例如跨网站脚本、HTTP应答切开、参数篡改、隐藏值篡改、后门/调试选项和缓冲区溢出等等。