六、安全测试

  Web应用系统的安全性测试区域主要有:

  1、 目录设置

  Web 安全的第一步是正确设置目录。每个目录下应该有 index.html 或 main.html 页

  面,这样不会显示该目录下的所有内容。如果没有执行这条规则。那么选中一幅图片,单击鼠标右键,找到该图片所在的路径"…com/objects/images"。然后在浏览器地址栏中手工输入该路径,发现该站点所有图片的列表。这可能没什么关系。但是进入下一级目录 "…com/objects" ,点击 jackpot。在该目录下有很多资料,其中有些都是已过期页面。如果该公司每个月都要更改产品价格信息,并且保存过期页面。那么只要翻看了一下这些记录,可以估计他们的边际利润以及他们为了争取一个合同还有多大的降价空间。如果某个客户在谈判之前查看了这些信息,他们在谈判桌上肯定处于上风。

  2.登录

  现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。

  3.Session

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

  4.日志文件

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

  5.加密

  当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。

  6.安全漏洞

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

  目前网络安全问题日益重要,特别对于有交互信息的网站及进行电子商务活动的网站尤其重要。目前我们的测试没有涵盖网站的安全性的测试,我们拟定采用工具来测定,

  工具如下

  SAINT------- Security Administrator’s Integrated Network Tool

  此工具能够测出网站系统的相应的安全问题,并且能够给出安全漏洞的解决方案,不过是一些较为常见的漏洞解决方案。

  七、代码合法性测试

  代码合法性测试主要包括2个部分:程序代码合法性检查与显示代码合法性检查。

  1、程序代码合法性检查

  程序代码合法性检查主要标准为《intergrp小组编程规范》,目前采用由SCM管理员进行规范的检查,未来期望能够有相应的工具进行测试。

  2、显示代码合法性检查

  显示代码的合法性检查,主要分为Html、JavaScript、Css代码检查,目前采用

  HTML代码检查------采用CSE HTML Validator进行测试

  JavaScript、Css也可以在网上下载相应的测试工具。

  八、 文档测试

  l、产品说明书属性检查清单

  1)完整.是否有遗漏和丢失,完全吗? 单独使用是否包含全部内容

  2)准确.既定解决方案正确吗? 目标明确吗? 有没有错误?

  3)精确、不含糊、清晰.描述是否一清二楚? 还是自说自话?容易看懂和理解吗?

  4)一致.产品功能能描述是否自相矛盾,与其他功能有没有冲突

  5)贴切.描述功能的陈述是否必要?有没有多余信息? 功能是否原来的客户要求?

  6)合理.在特定的预算和进度下,以现有人力,物力和资源能否实现?

  7)代码无关.是否坚持定义产品,而不是定义其所信赖的软件设计,架构和代码

  8)可测试性.特性能否测试? 测试员建立验证操作的测试程序是否提供足够的信息?

  2、 产品说明书用语检查清单

  1)说明。 对问题的描述通常表现为粉饰没有仔细考虑的功能----可归结于前文所述的属性.从产品说明书上找出这样的用语,仔细审视它们在文中是怎样使用的.产品说明书可能会为其掩饰和开脱,也可能含糊其词----无论是哪一种情况都可视为软件缺陷.

  2)总是,每一种,所有,没有,从不.如果看到此类或肯定的,切实认定的叙述,软件测试员可以着手设计针锋相对的案例.

  3)当然,因此,明显,显然,必然.这些话意图诱使接受假定情况.不要中了圈套.

  4)某些,有时,常常,通常,惯常,经常,大多,几乎.这些话太过模糊."有时"发生作用的功能无法测试.

  5)等等,诸如此类,依此类推.以这样的词结束的功能清单无法测试.功能清单要或者解释明确,以免让人迷惑,不知如何推论.

  6)良好,迅速,廉价,高效,小,稳定.这些是不确定的说法,不可测试.如果在产品说明书中出现,必须进一步指明含义.

  7)已处理,已拒绝,已忽略,已消除.这些廉洁可能会隐藏大量需要说明的功能.

  8)如果...那么...(没有否则).找出有"如果...那么..."而缺少配套的"否则"结构的陈述.想一想"如果"没有发生会怎样.

  相关的测试工具

  OpenSTA

  主要做性能测试的负荷及压力测试,使用比较方便,可以编写测试脚本,也可以先行自动生成测试脚本,而后对于应用测试脚本进行测试。

  SAINT

  网站安全性测试,能够对于指定网站进行安全性测试,并可以提供安全问题的解决方案。

  CSE HTML Validator

  一个有用的对于HTML代码进行合法性检查的工具

  Ab(Apache Bench)

  Apache自带的对于性能测试方面的工具,功能不是很多,但是非常实用。

  Crash-me

  Mysql自带的测试数据库性能的工具,能够测试多种数据库的性能。

  软件安全性测试基本概念:

  软件安全性测试包括程序、网络、数据库安全性测试。根据系统安全指标不同测试策略也不同。

  1.用户程序安全的测试要考虑问题包括:①明确区分系统中不同用户权限;②系统中会不会出现用户冲突;③系统会不会因用户的权限的改变造成混乱;④用户登 陆密码是否是可见、可复制;⑤是否可以通过途径登陆系统(拷贝用户登陆后的链接直接进入系统);⑥用户推出系统后是否删除了所有鉴权标记,是否可以使 用后退键而不通过输入口令进入系统。

  2.系统网络安全的测试要考虑问题包括:①测试采取的防护措施是否正确装配好,有关系统的补丁是否打上;② 模拟非授权攻击,看防护系统是否坚固;③采用成熟的网络漏洞检查工具检查系统相关漏洞;④ 采用各种木马检查工具检查系统木马情况;⑤ 采用各种防外挂工具检查系统各组程序的客外挂漏洞。

  3.数据库安全考虑问题:①系统数据是否机密(比如对银行系统,这一点特别重要,一般的网站没有太高要求);② 系统数据的完整性; ③系统数据可管理性; ④系统数据的独立性;⑤系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)。