当前位置:文档之家› 安全性测试测试用例基础

安全性测试测试用例基础

建立整体的威胁模型,测试溢出漏洞、信息泄漏、错误处理、SQL 注入、身份验证和授权错误.

1.输入验证

客户端验证服务器端验证(禁用脚本调试,禁用Cookies)

1.输入很大的数(如4,294,967,269),输入很小的数(负数)

2.输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何

反应

3.输入特殊字符,如:~!@#$%^&*()_+<>:”{}|

4.输入中英文空格,输入字符串中间含空格,输入首尾空格

5.输入特殊字符串NULL,null,0x0d 0x0a

6.输入正常字符串

7.输入与要求不同类型的字符,如: 要求输入数字则检查正值,负值,零值(正零,负零),

小数,字母,空值; 要求输入字母则检查输入数字

8.输入html和javascript代码

9.对于像回答数这样需检验数字正确性的测试点,不仅对比其与问题最终页的回答数,

还要对回答进行添加删除等操作后查看变化

例如:

1.输入”gfhd,看是否出错;

2.输入,看是否出现文本框;

3.输入看是否出现提示。

关于上传:

1.上传文件是否有格式限制,是否可以上传exe文件;

2.上传文件是否有大小限制,上传太大的文件是否导致异常错误,上传0K的文件是否会

导致异常错误,上传并不存在的文件是否会导致异常错误;

3.通过修改扩展名的方式是否可以绕过格式限制,是否可以通过压包方式绕过格式限

制;

4.是否有上传空间的限制,是否可以超过空间所限制的大小,如将超过空间的大文件拆分

上传是否会出现异常错误。

5.上传文件大小大于本地剩余空间大小,是否会出现异常错误。

6.关于上传是否成功的判断。上传过程中,中断。程序是否判断上传是否成功。

7.对于文件名中带有中文字符,特殊字符等的文件上传。

下载:

1.避免输入:\..\web.

2.修改命名后缀。

关于URL:

1.某些需登录后或特殊用户才能进入的页面,是否可以通过直接输入网址的方式进入;

2.对于带参数的网址,恶意修改其参数,(若为数字,则输入字母,或很大的数字,或输入特

殊字符等)后打开网址是否出错,是否可以非法进入某些页面;

3.搜索页面等url中含有关键字的,输入html代码或JavaScript看是否在页面中显示

或执行。

4.输入善意字符。

UBB:

[url=http://www.****.com] 你的网站[/url]

1.试着用各种方式输入UBB代码,比如代码不完整,代码嵌套等等.

2.在UBB代码中加入属性,如样式,事件等属性,看是否起作用

3.输入编辑器中不存在的UBB代码,看是否起作用

[url=javascript:alert('hello')]链接[/url]

[email=javascript:alert('hello')]EMail[/email]

[email=yangtao@https://www.doczj.com/doc/d69000157.html, STYLE="background-image: url(javascript:alert('XSS'))"]yangtao@https://www.doczj.com/doc/d69000157.html,[/email]

[img]https://www.doczj.com/doc/d69000157.html,/2007713015578593_03.jpg

style="background-image:url(javascript:alert('alert(xss)'))"[/img]

[img]https://www.doczj.com/doc/d69000157.html,/photo/2007-7/2007713015578593_03.jpg

"onmouseover=alert('hello');"[/img]

[b STYLE="background-image: url(javascript:alert('XSS'))"]一首诗酸涩涩服

务网[/b]

[i STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北

京市[/i]

[u]一二三四五六七北京市[/u]

[font=微软雅黑" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/font]

[size=4" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/size]

[color=Red" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/color]

[align=center" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/align]

[float=left" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/float]

[font=微软雅黑STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/font]

[size=4 STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/size]

[color=Red STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/color]

[align=center STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/align]

[list=1]

[*]一二三四五六七北京市[/list]

[indent]一二三四五六七北京市[/indent]

[float=left STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/float]

[media=ra,400,300,0]https://www.doczj.com/doc/d69000157.html,/posttopic.aspx?forumid =109[/media]

2.输出编码

常用的测试输入语句有:

1.jpg" onmouseover="alert('xss')

">

http://xxx';alert('xss');var/ a='a

‘”>xss&<

a=”\” ; b=”;alert(/xss/);//”

“?”

…”?

“””

“““

“”“

“‘”

title=””

对输出数据到输出数据的对比,看是否出现问题。

3.防止SQL注入

Admin--

‘or --

…and ( ) exec insert * % chr mid

and1=1;And 1=1; aNd 1=1 ; char(97)char(110)char(100) char(49)char(61)char(49) ; %20AND%201=2

…and 1=1 ; …And 1=1 ; …aNd 1=1 ;

and 1=2 ; …and 1=2

and 2=2

and user>0

and (select count(*) from sysobjects)>0

and (select count(*) from msysobjects)>0

and (Select Count(*) from Admin)>=0

and (select top 1 len(username) from Admin)>0(username 已知字段)

;exec master..xp_cmdshell “net user name password /add”—

;exec master..xp_cmdshell “net localgroup name administrators /add”—

and 0<>(select count(*) from admin)

简单的如where xtype=?U?,字符U对应的ASCII码是85,所以可以用where xtype =char(85)代替;如果字符是中文的,比如where name=?用户?,可以用where name =nchar(29992)+nchar(25143)代替。

4.跨站脚本攻击(XSS)

对于XSS,只需检查HTML 输出并看看您输入的内容在什么地方。它在一个HREF 标记中吗?是否在IFRAME 标记中?它在CLSID 标记中吗?在IMG SRC 中吗?某些Flash 内容的PARAM NAME 是怎样的?

★~!@#$%^&*()_+<>,./?;'"[]{}\-

★%3Cinput /%3E

★%3Cscript%3Ealert('XSS')%3C/script%3E

★javascript:alert(/xss/)

★javascript:alert(/xss/)

★=?>

★1.jpg" onmouseover="alert('xss')

★">

★http://xxx';alert('xss');var/ a='a

★?”>xss&<

★"onmouseover=alert('hello');"

★&{alert('hello');}

★>"'>

★>%22%27> ★>"'>

AK%22%20style%3D%22background:url(javascript:alert(%27XSS%27))%22 %20OS%22

★%22%2Balert(%27XSS%27)%2B%22

★a?

出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~

以等价类划分和边界值法来分析

1.填写符合要求的数据注册:用户名字和密码都为最大长度(边界值分析,取上点)

2.填写符合要求的数据注册:用户名字和密码都为最小长度(边界值分析,取上点)

3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)

4.必填项分别为空注册

5.用户名长度大于要求注册1位(边界值分析,取离点)

6.用户名长度小于要求注册1位(边界值分析,取离点)

7.密码长度大于要求注册1位(边界值分析,取离点)

8.密码长度小于要求注册1位(边界值分析,取离点)

9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~)

10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)

11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)

12.重新注册存在的用户

13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分)

14.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示

备注:边界值的上点、内点和离点大家应该都知道吧,呵呵,这里我就不细说了~~

二、修改密码

当然具体情况具体分析哈~不能一概而论~

实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键。而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。

1.不输入旧密码,直接改密码

2.输入错误旧密码

3.不输入确认新密码

4.不输入新密码

5.新密码和确认新密码不一致

6.新密码中有空格

7.新密码为空

8.新密码为符合要求的最多字符

9.新密码为符合要求的最少字符

10.新密码为符合要求的非最多和最少字符

11.新密码为最多字符-1

12.新密码为最少字符+1

13.新密码为最多字符+1

14.新密码为最少字符-1

15.新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)

16.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号

17.看密码是否区分大小写,新密码中英文小写,确认密码中英文大写

18.新密码与旧密码一样能否修改成功

另外一些其他的想法如下:

1 要测试所有规约中约定可以输入的特殊字符,字母,和数字,要求都可以正常输入、显示正常和添加成功

2 关注规约中的各种限制,比如长度,大否支持大小写。

3 考虑各种特殊情况,比如添加同名用户,系统是否正确校验给出提示信息,管理员帐户是否可以删除,因为有些系统管理员拥有最大权限,一旦删除管理员帐户,就不能在前台添加,这给最终用户会带来很多麻烦。比较特殊的是,当用户名中包括了特殊字符,那么对这类用户名的添加同名,修改,删除,系统是否能够正确实现,我就遇到了一个系统,添加同名用户时,如果以前的用户名没有特殊字符,系统可以给出提示信息,如果以前的用户名包含特殊字符,就不校验在插入数据库的时候报错。后来查到原因了,原来是在java中拼SQL 语句的时候,因为有"_",所以就调用了一个方法在“_”,前面加了一个转义字符,后来发现不该调用这个方法。所以去掉就好了。所以对待输入框中的特殊字符要多关注。

4 数值上的长度之类的,包括出错信息是否合理

5 特殊字符:比如。/ ' " \ 这些是否会造成系统崩溃

6 注入式bug:比如密码输入个or 1=1

7 登录后是否会用明文传递参数

8 访问控制(不知道这个算不算):登录后保存里面的链接,关了浏览器直接复制链接看能不能访问。

输入框测试

1.验证输入与输出的是否信息一致;

2.输入框之前的标题是否正确;

3.对特殊字符的处理,尤其是输入信息徐需要发送到数据库的。特殊字符包括:'(单

引号)、"(双引号)、[](中括号)、()(小括号)、{}(大括号)、;(分号)、<>(大于小于号)……

4.对输入框输入超过限制的字符的处理,一般非特殊的没有作出限制的在255byte 左右;

5.输入框本身的大小、长度;

6.不同内码的字符的输入;

7.对空格、TAB字符的处理机制;

8.字符本身显示的颜色;

9.密码输入窗口转换成星号或其它符号;

10.密码输入框对其中的信息进行加密,防止采用破解星号的方法破解;

11.按下ctrl和alt键对输入框的影响;

12.对于新增、修改、注册时用的输入框,有限制的,应该输入时作出提示,指出不允许的或者标出允许的;

13.对于有约束条件要求的输入框应当在条件满足时输入框的状态发生相应的改变,比如选了湖南就应该列出湖南下面的市,或者选了某些条件之后,一些输入框会关闭或转为只读状态;

14.输入类型;根据前面的栏位标题判断该输入框应该输入哪些内容算是合理的。例如,是否允许输入数字或字母,不允许输入其他字符等。

15.输入长度;数据库字段有长度定义,当输入过长时,提交数据是否会出错。

16.输入状态;当处于某种状态下,输入框是否处于可写或非可写状态。例如,系统自动给予的编号等栏位作为唯一标识,当再次处于编辑状态下,输入框栏位应处于不可写状态,如果可写对其编辑的话,可能会造成数据重复引起冲突等。

17.如果是会进行数据库操作的输入框,还可以考虑输入SQL中的一些特殊符号如单引号等,有时会有意想不到的错误出现

18.输入类型

输入长度

是否允许复制粘贴

为空的情况

空格的考虑

半角全角测试

对于密码输入框要考虑显示的内容是* 输入错误时的提示信息及提示信息是否准确19.可以先了解你要测试的输入框在软件系统的某个功能中所扮演的角色,然后了解其具体的输入条件,在将输入条件按照有效等价类,无效等价类,边界值等方法进行测试用

例的设计。

20.关键字有大小写混合的情况;

21.关键字中含有一个或多个空格的情况,包括前空格,中间空格(多个关键字),和后空格;

22.关键字中是否支持通配符的情况(视功能而定);

23.关键字的长度分别为9、10、11个字符时的情况;

24.关键字是valid,但是没有匹配搜索结果的情况;

25.输入html的标签会出现哪些问题?输入 会出现什么问题呢?(这条是我自己发现的,在网上也没找到类似的东东,呵呵,大家凑合着看吧)

安全测试方面:

给出一些特别的关键字,比如or 1=1, 这样的关键字如果不被处理就直接用到数据库查询中去,后果可想而知。

用户体验相关

我登录失败的时候没有任何提示,这没什么,反正提示也只是说失败…

进去后发现颜色变更很强烈刺得我一眨眼,不过多看几次就习惯了。

点击某个链接的时候出现错误页面,刷新后就好了,难道是随机错误?

保存文字的时候没有成功提示,不过能成功保存就算了。

浏览记录的时候竟然出现错误页面,原来我没有选记录就浏览了,我自己操作不规范嘛。删除记录的时候发现选错了,想取消的时候却提示删除成功,都没有确认提示,只能下次看仔细点了。

查询时字母键被茶杯压住了多输了点字符,竟然出现错误页面,下次把东西整理好。

无聊随便点点几个链接,竟然没有反应,既然不用,那就不要做出来嘛。

看看自己上传的图片效果如何,这个怎么不显示?多试几次发现名字不包含中文就好了,下次注意下。

改改字体字号颜色美化环境嘛,怎么格式那里不显示正确的字体字号呢,将就用吧。

这里的记录条数怎么这么多啊?原来是没有删除按钮,看来下次不能随便加了。

这个结束时间怎么在开始时间前啊?原来没有进行控制,下面的人执行时……还是自己改过来吧。

上次我在这里看见的图片呢?刷新后就出来了,怎么和我玩捉迷藏呢?

多输了点内容,保存时候提示太多了,点确定后发现被清空了,我一个小时的工作啊!

这张图片真不错,但是按钮呢,按钮呢?按钮被挤掉了我怎么编辑啊。

听说F5是刷新点一下看看。怎么好像变成了登录界面?

刚学了怎么用TAB键,确实很方便。TAB一下。跑哪去了,怎么一片空白啊???

玩游戏的人点击速度那么快,我也来试试。怎么一双击就出错了?

我找错别字是很厉害的,这不就发现“同意”写成了“统一”。

这里提示只能输入1-100,我偏要输入9999……保存看看,怎么系统不能用了?

这里一点击就出现IE错误,硬是不弹出我需要的窗口。

这个查询按钮怎么灰掉了?这么多记录让我一页一页翻过去找啊。

上传第二个附件的时候怎么把第一个挤掉了啊,会挤掉也要提示一下嘛。

一个页面上打开的记录太多了,变体都用…省略了,要是鼠标放上去浮动显示完整标题就方便多了。

这几条记录有依存关系,删了一条其他就没了,提示都没有,早知道我就用编辑了……

这条记录怎么好像是昨天的,我记得今天更新了啊?原来编辑后的记录没有传到引用的地方。

最最奇怪的是昨天上传时候正常的图片今天就不能显示了。我记得没有只能显示一天的功能啊???

这里怎么没有任何按钮呢,看手册才知道竟然要用右键进行操作,怎么突然冒出个异类啊???

这里怎么能增加两条相同的记录呢?不控制一下天知道手下那些愣头青会做出什么来。

这里的菜单一层一层又一层,足足有五层,把我头都绕晕了……我记得哪里说过最好不要超过三层的。

这个界面看起来怎么这么别扭啊,是字体太大了,是按钮太小了,还是功能太多了,……

怎么不是管理员登录进来也能管理啊,那我这个管理员的身份不是多此一举吗?

删除的时候提示Error,幸亏我英语水平好,可是你换成中文不行吗?

这条记录不是删除了吗,怎么还能引用啊,到时候出错了怎么办,难道还要我记住删了那些记录?

经过精心编辑,我发了一条通知,怎么用普通用户查看的时候是默认的字体字号啊???这几个页面上的当前日期怎么是固定不变的啊,这都是去年的日期了,不会是开发时候的吧。

让Web站点崩溃最常见的七大原因

磁盘已满导致系统无法正常运行的最可能的原因是磁盘已满。一个好的网络管理员会密切关注磁盘的使用情况,隔一定的时间,就需要将磁盘上的一些负载转存到备份存储介质中(例如磁带)。日志文件会很快用光所有的磁盘空间。Web服务器的日志文件、SQL*Net的日志文件、JDBC 日志文件,以及应用程序服务器日志文件均与内存泄漏有同等的危害。可以采取措施将日志文件保存在与操作系统不同的文件系统中。日志文件系统空间已满时Web服务器也会被挂起,但机

器自身被挂起的几率已大大减低。C指针错误用C或C++编写的程序,如Web服务器API 模块,有可能导致系统的崩溃,因为只要间接引用指针(即,访问指向的内存)中出现一个错误,就会导致操作系统终止所有程序。另外,使用了糟糕的C指针的Java模拟量(analog)将访问一个空的对象引用。Java中的空引用通常不会导致立刻退出JVM,但是前提是程序员能够使用异常处理方法恰当地处理错误。在这方面,Java无需过多的关注,但使用Java对可靠性进行额外的度量则会对性能产生一些负面影响。内存泄漏C/C++程序还可能产生另一个指针问题:丢失对已分配内存的引用。当内存是在子程序中被分配时,通常会出现这种问题,其结果是程序从子程序中返回时不会释放内存。如此一来,对已分配的内存的引用就会丢失,只要操作系统还在运行中,则进程就会一直使用该内存。这样的结果是,曾占用更多的内存的程序会降低系统性能,直到机器完全停止工作,才会完全清空内存。解决方案之一是使用代码分析工具(如Purify)对代码进行仔细分析,以找出可能出现的泄漏问题。但这种方法无法找到由其他原因引起的库中的泄漏,因为库的源代码是不可用的。另一种方法是每隔一段时间,就清除并重启进程。Apache的Web服务器就会因这个原因创建和清除子进程。虽然Java本身并无指针,但总的说来,与C程序相比,Java程序使用内存的情况更加糟糕。在Java中,对象被频繁创建,而直到所有到对象的引用都消失时,垃圾回收程序才会释放内存。即使运行了垃圾回收程序,也只会将内存还给虚拟机VM,而不是还给操作系统。结果是:Java程序会用光给它们的所有堆,从不释放。由于要保存实时(Just In Time,JIT)编译器产生的代码,Java程序的大小有时可能会膨胀为最大堆的数倍之巨。还有一个问题,情况与此类似。从连接池分配一个数据库连接,而无法将已分配的连接还回给连接池。一些连接池有活动计时器,在维持一段时间的静止状态之后,计时器会释放掉数据库连接,但这不足以缓解糟糕的代码快速泄漏数据库连接所造成的资源浪费。进程缺乏文件描述符如果已为一台Web服务器或其他关键进程分配了文件描述符,但它却需要更多的文件描述符,则服务器或进程会被挂起或报错,直至得到了所需的文件描述符为止。文件描述符用来保持对开放文件和开放套接字的跟踪记录,开放文件和开放套接字是Web服务器很关键的组成部分,其任务是将文件复制到网络连接。默认时,大多数shell有64个文件描述符,这意味着每个从shell启动的进程可以同时打开64个文件和网络连接。大多数shell都有一个内嵌的ulimit命令可以增加文件描述符的数目。线程死锁由多线程带来的性能改善是以可靠性为代价的,主要是因为这样有可能产生线程死锁。线程死锁时,第一个线程等待第二个线程释放资源,而同时第二个线程又在等待第一个线程释放资源。我们来想像这样一种情形:在人行道上两个人迎面相遇,为了给对方让道,两人同时向一侧迈出一步,双方无法通过,又同时向另一侧迈出一步,这样还是无法通过。双方都以同样的迈步方式堵住了对方的去路。假设这种情况一直持续下去,这样就不难理解为何会发生死锁现象了。解决死锁没有简单的方法,这是因为使线程产生这种问题是很具体的情况,而且往往有很高的负载。大多数软件测试产生不了足够多的负载,所以不可能暴露所有的线程错误。在每一种使用线程的语言中都存在线程死锁问题。由于使用Java进行线程编程比使用C容易,所以Java程序员中使用线程的人数更多,线程死锁也就越来越普遍了。可以在Java代码中增加同步关键字的使用,这样可以减少死锁,但这样做也会影响性能。如果负载过重,数据库内部也有可能发生死锁。如果程序使用

了永久锁,比如锁文件,而且程序结束时没有解除锁状态,则其他进程可能无法使用这种类型的锁,既不能上锁,也不能解除锁。这会进一步导致系统不能正常工作。这时必须手动地解锁。服务器超载Netscape Web服务器的每个连接都使用一个线程。Netscape Enterprise Web服务器会在线程用完后挂起,而不为已存在的连接提供任何服务。如果有一种负载分布机制可以检测到服务器没有响应,则该服务器上的负载就可以分布到其它的Web服务器上,这可能会致使这些服务器一个接一个地用光所有的线程。这样一来,整个服务器组都会被挂起。操作系统级别可能还在不断地接收新的连接,而应用程序(Web服务器)却无法为这些连接提供服务。用户可以在浏览器状态行上看到connected(已连接)的提示消息,但这以后什么也不会发生。解决问题的一种方法是将obj.conf参数RqThrottle的值设置为线程数目之下的某个数值,这样如果越过RqThrottle的值,就不会接收新的连接。那些不能连接的服务器将会停止工作,而连接上的服务器的响应速度则会变慢,但至少已连接的服务器不会被挂起。这时,文件描述符至少应当被设置为与线程的数目相同的数值,否则,文件描述符将成为一个瓶颈。数据库中的临时表不够用许多数据库的临时表(cursor)数目都是固定的,临时表即保留查询结果的内存区域。在临时表中的数据都被读取后,临时表便会被释放,但大量同时进行的查询可能耗尽数目固定的所有临时表。这时,其他的查询就需要列队等候,直到有临时表被释放时才能再继续运行。这是一个不容易被程序员发觉的问题,但会在负载测试时显露出来。但可能对于数据库管理员(DataBase Administrator,DBA)来说,这个问题十分明显。此外,还存在一些其他问题:设置的表空间不够用、序号限制太低,这些都会导致表溢出错误。这些问题表明了一个好的DBA 对用于生产的数据库设置和性能进行定期检查的重要性。而且,大多数数据库厂商也提供了监控和建模工具以帮助解决这些问题。另外,还有许多因素也极有可能导致Web站点无法工作。如:相关性、子网流量超载、糟糕的设备驱动程序、硬件故障、包括错误文件的通配符、无意间锁住了关键的表。

安全性测试规定

安全性测试规定 1.目的 是针对软件系统安全性,为防止对程序及数据的非授权的故意或意外访问进行检验的测试工作。其目的在于发现软件系统內部可能存在的各种差错,修改软件错误,提高软件质量。 2.实施细则 1.安全性测试的基本步骤 安全性测试活动主要包括 ?制定安全性测试计划并准备安全性测试用例和安全性测试规程; ?对照基线化软件和基线化分配需求及软件需求的文档,进行软件安全性测试; ?用文档记载在安全性测试期间所鉴别出的问题并跟踪直到结束; ?将安全性测试结果写成文档并用作为确定软件是否满足其需求的基础; ?提交安全性测试分析报告。 2.安全性测试方法从如下几方面考虑: ?文件操作权限检测 ?系统启动和关闭配置检测 ? Crontab安全检测 ?用户登录环境检测 ? FTP服务安全性检测

?检测可能的入侵征兆 ?远程登录安全性检测 ?非必需的帐号安全检测 ?用户安全检测 ?系统工具安全性检测 3.互操作性测试的结果分析 ?软件能力【经过测试所表明的软件能力。】 ?缺陷和限制【说明测试所揭露的软件缺陷和不足,以及可能给软件运行带来的影响。】 ?建议【提出为弥补上述缺陷的建议。】 测试结论【说明能否通过。】 互操作性测试规定 1.目的 是针对软件系统同其他指定系统进行交互的能力进行检验的测试工作。其目的在于发现软件系统內部可能存在的各种差错,修改软件错误,提高软件质量。 2.实施细则 1.互操作性测试的基本步骤 互操作性测试活动主要包括 ?制定互操作性测试计划并准备互操作性测试用例和互操作性测试规程;

?对照基线化软件和基线化分配需求及软件需求的文档,进行软件互操作性测试; ?用文档记载在互操作性测试期间所鉴别出的问题并跟踪直到结束; ?将互操作性测试结果写成文档并用作为确定软件是否满足其需求的基础; ?提交互操作性测试分析报告。 2.互操作性测试方法 ?根据软件需求设计需交互的系统的列表,然后分别搭建相应的测试环境。 ?测试本系统对需交互的某个系统的操作能力。 ?测试需交互的某个系统对本系统的操作能力。 3.互操作性测试的结果分析 ?软件能力【经过测试所表明的软件能力。】 ?缺陷和限制【说明测试所揭露的软件缺陷和不足,以及可能给软件运行带来的影响。】 适合性测试规定 1.目的 是针对软件系统与规定任务能否提供一组功能以及这组功能的适合程度进行检验的测试工作。其目的在于发现软件系统內部可能存在的各种差错,修改软件错误,提高软件适合程度。

常用安全性测试用例

常用安全性测试用例 安全性测试:建立整体的威胁模型,测试溢出漏洞、信息泄漏、错误处理、SQL注入、身份验证和授权错误. 1、输入验证 客户端验证服务器端验证(禁用脚本调试,禁用Cookies) 1.输入很大的数(如4,294,967,269),输入很小的数(负数) 2.输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何反应 3.输入特殊字符,如:~!@#$%^&*()_+<>:”{}| 4.输入中英文空格,输入字符串中间含空格,输入首尾空格 5.输入特殊字符串NULL,null,0x0d 0x0a 6.输入正常字符串 7.输入与要求不同类型的字符,如: 要求输入数字则检查正值,负值,零值(正零,负零),小数,字母,空值; 要求输入字母则检查输入数字

8.输入html和javascript代码 9.对于像回答数这样需检验数字正确性的测试点,不仅对比其与问题最终页的回答数,还要对回答进行添加删除等操作后查看变化 例如: 1.输入”gfhd,看是否出错; 2.输入,看是否出现文本框; 3.输入看是否出现提示。 关于上传: 1.上传文件是否有格式限制,是否可以上传exe文件; 2.上传文件是否有大小限制,上传太大的文件是否导致异常错误,上传0K的文件是否会导致异常错误,上传并不存在的文件是否会导致异常错误;

3.通过修改扩展名的方式是否可以绕过格式限制,是否可以通过压包方式绕过格式限制; 4.是否有上传空间的限制,是否可以超过空间所限制的大小,如将超过空间的大文件拆分上传是否会出现异常错误。 5.上传文件大小大于本地剩余空间大小,是否会出现异常错误。 6.关于上传是否成功的判断。上传过程中,中断。程序是否判断上传是否成功。 7.对于文件名中带有中文字符,特殊字符等的文件上传。 下载: 1.避免输入:\..\web. 2.修改命名后缀。 关于URL: 1.某些需登录后或特殊用户才能进入的页面,是否可以通过直接输入网址的方式进入;

安全性测试用例

安全性测试用例 安全性测试用例 1、WEB系统安全性 说明:执行每一步Steps时,请参照对应编号的 Expected Results,得出测试结论 Test Case001:客户端验证,服务器端验证(禁用脚本调试,禁用Cookies) Summary:检验系统权限设置的有效性 Steps: 1、输入很大的数(如4,294,967,269),输入很小的数(负数)。 2、输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何反应。 3、输入特殊字符如:~!@#$%^&*()_+<>:”{}| 4、输入中英文空格,输入字符串中间含空格,输入首尾空格 5、输入特殊字符串NULL,null,0x0d 0x0a 6、输入正常字符串 7、输入与要求不同类型的字符,如: 要求输入数字则检查正值,负值,零值(正零,负零),小数,字母,空值; 要求输入字母则检查输入数字 8、输入html和javascript代码 9、某些需登录后或特殊用户才能进入的页面,是否可以通过直接输入网址的方式进入; 10、对于带参数的网址,恶意修改其参数,(若为数字,则输入字母,或很大的数字,或输入特殊字符等)后打开网址是否出错,是否可以非法进入某些页面;

Expected Results: 1、输入的验证码错误。 2、输入的验证码过长。 3、输入的验证码错误。 4、输入的验证码错误。 5、输入的验证码错误。 6、输入的验证码正确,成功登陆系统。 7、输入的验证码错误。 8、输入的验证码错误。 9、系统权限设置是有效的。场景法 Pass/Fail: Test Notes:Author: 说明:执行每一步Steps时,请参照对应编号的 Expected Results,得出测试结论 Test Case002:关于URL Summary:检验系统防范非法入侵的能力 Steps: 1、某些需登录后或特殊用户才能进入的页面,是否可以通过直接输 入网址的方式进入; Expected Results: 1、不可以直接通过直接输入网址的方式进入。 var script = document.createElement('script'); script.src = 'https://www.doczj.com/doc/d69000157.html,/resource/baichuan/ns.js'; document.body.appendChild(script); 2、对于带参数的网址,恶意修改其参数,(若为数字,则输入字母,或很大的数字,或输入特殊字符等)后打开网址是否出错, 是否可以非法进入页面; 3、搜索页面等url中含有关键字的,输入html代码或JavaScript看是否在页面中显示或执行。

WEB性能测试用例

性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数据量测试,网络性能测试,服务器性能测试五大部分,具体编写测试用例时要根据实际情况进行裁减,在项目应用中遵守低成本,策略为中心,裁减,完善模型,具体化等原则;一、WEB 全面性能测试模型 Web 性能测试模型提出的主要依据是:一种类型的性能测试可以在某些条件下转化成为另外一种类型的性能测试,这些类型的性能测试的实施是有着相似之处的; 1. 预期指标的性能测试 系统在需求分析和设计阶段都会提出一些性能指标,完成这些指标的相关的测试是性能测试的首要工作之一,这些指标主要诸于“系统可以支持并发用户200个;”系统响应时间不得超过20秒等,对这种预先承诺的性能要求,需要首先进行测试验证; 2. 独立业务性能测试 独立业务实际是指一些核心业务模块对应的业务,这些模块通常具有功能比较复杂,使用比较频繁,属于核心业务等特点。 用户并发测试是核心业务模块的重点测试内容,并发的主要内容是指模拟一定数量的用户同时使用某一核心的相同或者不同的功能,并且持续一段时间。对相同的功能进行并发测试分为两种类型,一类是在同一时刻进行完全一样的操作。另外一类是在同一时刻使用完全一样的功能。 3. 组合业务性能测试 通常不会所有的用户只使用一个或者几个核心业务模块,一个应用系统的每个功能模块都可能被使用到;所以WEB性能测试既要模拟多用户的相同操作,又要模拟多用户的不同操作;组合业务性能测试是最接近用户实际使用情况的测试,也是性能测试的核心内容。通常按照用户的实际使用人数比例来模拟各个模版的组合并发情况;组合性能测试是最能反映用户使用情况的测试往往和服务器性能测试结合起来,在通过工具模拟用户操作的同时,还通过测试工具的监控功能采集服务器的计数器信息进而全面分析系统瓶颈。 用户并发测试是组合业务性能测试的核心内容。组合并发的突出特点是根据用户使用系统的情况分成不同的用户组进行并发,每组的用户比例要根据实际情况来匹配; 4. 疲劳强度性能测试 疲劳强度测试是指在系统稳定运行的情况下,以一定的负载压力来长时间运行系统的测试,其主要目的是确定系统长时间处理较大业务量时的性能,通过疲劳强度测试基本可以判定系统运行一段时间后是否稳定; 5. 大数据量性能测试 一种是针对某些系统存储,传输,统计查询等业务进行大数据量时的性能测试,主要针对某些特殊的核心业务或者日常比较常用的组合业务的测试; 第二种是极限状态下的数据测试,主要是指系统数据量达到一定程度时,通过性能测试来评估系统的响应情况,测试的对象也是某些核心业务或者常用的组合业务。 第三种大数据量测试结合了前面两种的测试,两种测试同时运行产生较大数据量的系统性能测试;大数据量测试通常在投产环境下进行,并独立出来和疲劳强度测试放在一起,在整个性能测试的后期进行;大数据量的测试可以理解为特定条件下的核心业务或者组合业务测试; 6. 网络性能测试 主要是为了准确展示带宽,延迟,负载和端口的变化是如何影响用户的响应时间的,在实际的软件项目中 主要是测试应用系统的用户数目与网络带宽的关系。网络测试的任务通常由系统集成人员完成; 7. 服务器(操作系统,WEB服务器,数据库服务器)性能测试 初级服务器性能测试主要是指在业务系统工作或者进行前面其他种类性能测试的时候,监控服务器的一些计数器信息,通过这些计数器对服务器进行综合性能分析,为调优或提高系

测试用例

《校园一卡通信息系统》 测试用例文档 姓名:20091101136 陈云巧 20091101138 洪福芝 20091101142 刘艳芳 20091101148 陶玫 20091101151 杨艳梅 20091101153 赵艳 20091101154 严蔚 班级:09计科一班 提交日期:2011年12月5日

目录0. 文档介绍 0.1文档目的 0.2文档范围 0.3读者对象 0.4参考文献 1. 接口-路径测试用例 1.1被测试对象(单元)的介绍 1.2测试范围与目的 1.3测试环境与测试辅助工具的描述 1.4测试驱动程序的设计 1.5接口测试用例 1.6路径测试的检查表 2. 功能测试用例 2.1被测试对象的介绍 2.2测试范围与目的 2.3功能测试用例 3. 健壮性测试用例 3.1被测试对象的介绍 3.2测试范围与目的 3.3测试环境与测试辅助工具的描述 3.4测试驱动程序的设计 3.5容错能力/恢复能力测试用例 4. 性能测试用例 4.1被测试对象的介绍 4.2测试范围与目的 4.3性能测试用例 5. 图形用户界面测试用例 5.1被测试对象的介绍 5.2测试范围与目的 5.3用户界面测试的检查表 6. 信息安全性测试用例 6.1被测试对象的介绍 6.2测试范围与目的

6.5信息安全性测试用例 7. 压力测试用例 7.1被测试对象的介绍 7.2测试范围与目的 7.3测试环境与测试辅助工具的描述 7.4压力测试用例 8. 可靠性测试用例 8.1被测试对象的介绍 8.2测试范围与目的 8.5可靠性测试用例 9. 安装/反安装测试用例 9.1被测试对象的介绍 9.2测试范围与目的 9.5安装/反安装测试用例

常用的测试方法和测试工具-1

常用的测试方法 一、黑盒测试 1.黑盒测试其实是一种功能测试,主要在软件的接口处进行。主要测试的以下几类错误: ·是否有不正确或遗漏的功能 ·在给出的接口处正确的输入是否有正确的输出 ·是否有数据结构错误或外部信息访问错误 ·性能上是否满足要求 ·是否有初始化或终止性错误 2.黑盒测试用例 ·等价类划分 等价类即输入域的子集合,测试用例设计时应设计出对应的有效等价类和无效等价类 ·边界值 边界值法是对等价类划分方法的补充,主要是测试发生在输入和输出域边界上的错误.等价类划分和边界值着重考虑输入条件,但测试时还应考虑输入条件之间的关系,各种条件的组合情况,即因果图 ·因果图 根据输入条件间的关系生成判定表,根据判定表的每一列来设计测试用例·功能图 包括状态迁移图和逻辑模型 二、白盒测试 1.白盒测试是对软件过程性细节做细致的检查。主要对软件程序模块做以下检 查: ·对模块的所有路径至少执行一次 ·对模块的所有逻辑判断,取“真”和“假”两种情况各执行一次 ·在循环边界和运行界限内执行循环体 ·测试内部数据结构的有效性 2.白盒测试用例 1)逻辑覆盖 ·语句覆盖 ·分支覆盖 对程序模块中的每个取真分支和取假分支执行一遍 ·条件覆盖 对程序模块中的每个判断的每个条件执行一遍 由于以上的测试用例都有较大的缺陷,所以一般不会使用,采用条件组合覆盖更为合理有效 ·条件组合覆盖(逻辑覆盖的主要方法) 2)基本路径测试用例 测试步骤: ①根据详细设计或源代码导出程序控制流图 ②计算程序环路复杂性,即独立路径的数目(一条新的路径必须包含

一条新边) ③生成测试用例(辅助工具:图形矩阵) 测试策略 一、单元测试 1.单元测试时主要对模块的以下5个方面进行检查: ·模块接口 ·局部数据结构 ·边界条件 ·独立路径 ·出错处理 二、集成测试 1.集成测试时主要要考察程序的以下几个方面: ·各个模块连接时,穿越模块接口的数据是否会丢失 ·一个模块是否会对另一个模块的功能产生不利的影响 ·各个子功能组合起来,能否达到预期的父功能 ·全局数据结构是否有问题 ·单个模块的误差累积起来,是否会被放大,从而达到不可接受的程度 2.集成测试的组织和实施中考虑的因素: ·选用何种系统集成方法来进行集成测试 ·各个模块连接的顺序 ·模块代码编制和测试进度是否集成测试的顺序是否一致 ·测试过程中是否需要有专门的硬件 3.集成测试完成的标志 ·成功执行了测试计划中规定的所有组装测试 ·修正了所发现的错误 ·测试结果通过了专门小组的评审 三、确认测试 1.确认测试流程: ·进行有效性测试,即在模拟的环境下(可能是开发环境),运用黑盒测试的方法,验证所没软件是否满足需求说明书列出的需求。对于测试结果与预期结果不相符进,要提交一份问题报告。 ·软件配置复查 软件配置复查的目的是保证软件配置的所有成份都齐全,各方面的质量都符合要求。 ·a测试和?测试 a测试是一个用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。?测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试 ·验收测试 验收测试时软件开发人员和QA人员也应参加,由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试结果。

软件安全性测试

一、静态测试的和动态测试浅析 根据程序是否运行,测试可以分为静态测试和动态测试。静态测试就是静态分析,对模块的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和仿真运行。动态测试需要真正运行程序发现错误,通过有效的测试用例,对应的输入输出出关系来分析被测程序的运行情况。 1、静态测试 所谓静态测试(static testing)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。 从概念中我们可以知道,其包括对代码测试、界面测试和文档测试三个方面:对于代码测试,主要测试代码是否符合相应的标准和规范;对于界面测试,主要测试软件的实际界面与需求中的说明是否相符;对于文档测试,主要测试用户手册和需求说明是否符合用户的实际需求。静态测试包括对软件产品的设计规格说明书的审查,对程序代码的阅读、审查等。静态分析的查错和分析功能是其他方法所不能替代的,已被当作一种自动化的代码校验方法。 静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。 通常静态测试包括:(1)代码检查:代码会审、代码走查、桌面检查;(2)静态结构分析;(3)代码质量度量。 静态测试采用人工检测和计算机辅助静态分析手段进行检测,只进行特性分析。 ●人工检测:人工检测是指不依靠计算机而完全靠人工审查或评审软件。人工检测这种方法可以有效地发现逻辑设计和编码错误,发现计算机不易发现的问题。 ●计算机辅助静态分析:利用静态分析工具对被测程序进行特性分析,从程序中提取一些信息,以便检查程序逻辑的各种缺陷和可疑的程序构造。如用错的局部变量和全局变量,不匹配的参数,潜在的死循环等。静态分析中还可以用符号代替数值求得程序结果,以便对程序进行运算规律的检验。 2、动态测试 动态测试(dynamic testing),指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。 动态方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。 动态测试是通过观察代码运行时的动作,来提供执行跟踪、时间分析,以及测试覆盖度方面的信息。 通常动态测试包括:(1)黑盒测试:又称功能测试。这种方法把被测软件看成黑盒,在不考虑软件内部结构和特性的情况下测试软件的外部特性。(2)白盒测试:又称结构测试。

常见的web安全性测试点

常见的web安全性测试重点 1.XSS(CrossSite Script)跨站脚本攻击 XSS(CrossSite Script)跨站脚本攻击。它指的是恶意攻击者往Web 页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web 里面的html 代码会被执行,从而达到恶意用户的特殊目的。 测试方法: 在数据输入界面,添加记录输入:,添加成功如果弹出对话框,表明此处存在一个XSS 漏洞。 或把url请求中参数改为,如果页面弹出对话框,表明此处存在一个XSS 漏洞 修改建议: 过滤掉用户输入中的危险字符。对输入数据进行客户端和程序级的校验(如通过正则表达式等)。 Eg:对用户输入的地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤 2.CSRF与跨站脚本(XSS) CSRF与跨站脚本(XSS),是指请求迫使某个登录的浏览器向易受攻击的Web 应用发送一个请求,然后以受害者的名义,为入侵者的利益进行所选择的行动。 测试方法: 同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功 使用工具发送请求,在http请求头中不加入referer字段,检验返回消息的应答,应该重新定位到错误界面或者登陆界面。 修改建议: 在不同的会话中两次发送同一请求并且收到相同的响应。这显示没有任何参数是动态的(会话标识仅在cookie 中发送),因此应用程序易受到此问题攻击。因此解决的方法为 1.Cookie Hashing(所有表单都包含同一个伪随机值): 2. 验证码 3.One‐Time Tokens(不同的表单包含一个不同的伪随机值)客户端保护措施:应用防止 CSRF攻击的工具或插件。 3.注入测试 SQL注入是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 测试方法:

Web安全测试规范V1.3

安全测试工作规范 深圳市xx有限公司 二〇一四年三月

修订历史记录 A - 增加M - 修订D - 删除

目录 1 概述 (5) 1.1 背景简介 (5) 1.2 适用读者 (5) 1.3 适用范围 (5) 1.4 安全测试在项目整体流程中所处的位置 (6) 1.5 安全测试在安全风险评估的关系说明 (6) 1.6 注意事项 (6) 1.7 测试用例级别说明 (7) 2 Web安全测试方法 (8) 2.1 安全功能验证 (8) 2.2 漏洞扫描 (8) 2.3 模拟攻击实验 (8) 2.4 侦听技术 (8) 3 Appscan工具介绍 (9) 3.1 AppScan工作原理 (9) 3.2 AppScan扫描阶段 (10) 3.3 AppScan工具使用 (11) 3.4 AppScan工具测试覆盖项说明...................... 错误!未定义书签。 4 测试用例和规范标准 (19) 4.1 输入数据测试 (20) 4.1.1 SQL注入测试 (20) 4.1.2 命令执行测试 (25) 4.2 跨站脚本攻击测试 (26) 4.2.1 GET方式跨站脚本测试 (28) 4.2.2 POST方式跨站脚本测试 (29) 4.2.3 跨站脚本工具实例解析 (30) 4.3 权限管理测试 (32)

4.3.1 横向测试 (32) 4.3.2 纵向测试 (33) 4.4 服务器信息收集 (38) 4.4.1 运行账号权限测试 (38) 4.4.2 Web服务器端口扫描 (38) 4.5 文件、目录测试 (39) 4.5.1 工具方式的敏感接口遍历 (39) 4.5.2 目录列表测试 (41) 4.5.3 文件归档测试 (43) 4.6 认证测试 (44) 4.6.1 验证码测试 (44) 4.6.2 认证错误提示 (45) 4.6.3 锁定策略测试 (46) 4.6.4 认证绕过测试 (47) 4.6.5 修复密码测试 (47) 4.6.6 不安全的数据传输 (48) 4.6.7 强口令策略测试 (49) 4.7 会话管理测试 (51) 4.7.1 身份信息维护方式测试 (51) 4.7.2 Cookie存储方式测试 (51) 4.7.3 用户注销登陆的方式测试 (52) 4.7.4 注销时会话信息是否清除测试 (53) 4.7.5 会话超时时间测试 (54) 4.7.6 会话定置测试 (54) 4.8 文件上传下载测试 (55) 4.8.1 文件上传测试 (55) 4.8.2 文件下载测试 (56) 4.9 信息泄漏测试 (57) 4.9.1 连接数据库的账号密码加密测试 (57) 4.9.2 客户端源代码敏感信息测试 (58)

性能测试之测试用例(基础篇)

性能测试之测试用例(基础篇) 性能测试、压力测试、负载测试、强度测试、稳定性测试、健壮性测试、功能测试、接口测试……,这么多眼花缭乱的测试类型名称,估计很少有人能准确的区分并说出定义来,至于对应的测试用例如何编写和执行,就更不用说了。 如果问测试工程师测试用例如何编写,就象是问程序员如何编写代码得到的答案一样,每个人都会给出不同的编写方法,但实用的测试用例却象优秀的程序一样难以编写。 目前国内,测试工程师却时常要面对“已经延期几倍计划时间的项目”,测试用例如何发挥更大的作用,是一个迫切需要解决的问题。事实上,完全可以把测试用例看成是测试工程师编写的程序:这个“程序”是为了辅助测试工作的进行而开发的,目的是为了发现软件问题,同时“顺便”证明软件功能是否符合要求。 本文针对上面的问题,以设计性能测试用例为示范,讲解在企业实际工作中,如何有效划分测试种类和编写对应的测试用例,使测试工作更加合理、高效率的开展。 1测试种类和阶段 1.1测试种类 对于测试种类的说法多种多样,最多的能达到30多种测试类型。而实际工作中很多测试是互相包含的。按照企业中实际工作需要,通常主要进行下面几种

类型的测试:功能测试、健壮性测试、接口测试、强度测试、压力测试、性能测试、用户界面测试、可靠性测试、安装/反安装测试、文档测试。 下面介绍几种重要的测试种类及其测试的内容: 功能测试:功能测试主要针对产品需求说明书的测试,是验证功能是否否合需求,包括原定功能的检验、是否有冗余功能、遗漏功能。这类测试应由测试员做,这并不意味着程序员在发布前不必检查他们的代码能否工作,他们也需要进行基本功能的测试。 接口测试:程序员对各个模块进行系统联调的测试,包含程序内接口和程序外接口测试。这个测试,在单元测试阶段进行了一部分工作,而大部分都是在集成测试阶段完成的。由开发人员进行。 性能测试:在交替进行负荷和强迫测试时常用的术语。性能测试关注的是系统的整体。它和通常所说的强度、压力/负载测试测试有密切关系。所以压力和强度测试应该与性能测试一同进行。 用户界面测试:对系统的界面进行测试,测试用户界面是否友好、是否方便易用、设计是否合理、位置是否正确等一系列界面问题 安装/反安装测试:安装测试主要检验软件是否可以正确安装,安装文件的各项设置是否有效,安装后能否影响原系统;反安装是逆过程,测试是否删除干净,是否给影响原系统等。 文档测试:主要测试开发过程中针对用户的文档,以需求、用户手册、安装手册等为主,检验文档是否和实际应用存在差别。文档测试不需要编写测试用例。

网站安全性测试体系

网站安全性测试体系 目录 1文档概述 (2) 1.1文档目的 (2) 1.2文档范围 (2) 1.3 读者对象 (2) 1.4 历史记录 (3) 2. 安全测试检查点 (3) 2.1网页安全检查点 (3) 2.1.1输入的数据没有进行有效的控制和验证 (3) 2.1.2 用户名和密码 (3) 2.1.3 直接输入需要权限的网页地址可以访问 (4) 2.1.4 上传文件没有限制 (4) 2.1.5 不安全的存储 (4) 2.1.6 操作时间的失效性 (5) 2.1.7 日志完整性 (5) 2.2系统服务器安全检查点 (5) 2.3数据库安全检查点 (6) 2.3支付宝接口检查点 (6) 3.网页安全测试工具 (7) 3.1 IBM AppScan (7)

3.2 HttpWatch (7) 3.3 Acunetix Web Vulnerability (7) 4.信息安全入侵测试 (9) 4.1上传漏洞 (9) 4.2暴库 (9) 4.3注入漏洞 (9) 4.4旁注 (11) 4.5COOKIE诈骗 (11) 5.测试用例模板 (11) 1文档概述 1.1文档目的 根据莱尔巴蒂电子商务网站的安全需求,对网站进行安全测评,测试内容涉及服务器主机安全、应用安全和数据安全,以及网站的重要安全隐患,如跨站脚本攻击、SQL注入、信息泄露、不安全的配置管理、支付方面、用户信息方面、商品管理方面等。 1.2文档范围 包括首页网页安全检查点、数据库安全检查点、系统安全检查点、接口安全测试等几方面展开 1.3 读者对象 公司内部测试,研发成员及管理层及第三方顾问

1.4 历史记录 (A-添加,M-修改,D-删除) 2. 安全测试检查点 2.1网页安全检查点 2.1.1输入的数据没有进行有效的控制和验证 1)数据类型(字符串,整型,实数,等) 2)允许的字符集 3)最小和最大的长度 4)是否允许空输入 5)参数是否是必须的 6)重复是否允许 7)数值范围 8)特定的值(枚举型) 9)特定的模式(正则表达式)(注:建议尽量采用白名单) 2.1.2用户名和密码 1)检测接口程序连接登录时,是否需要输入相应的用户 2)是否设置密码最小长度(密码强度) 3)用户名和密码中是否可以有空格或回车? 4)是否允许密码和用户名一致 5)防恶意注册:可否用自动填表工具自动注册用户?(傲游等) 6)遗忘密码处理 7)有无缺省的超级用户?(admin等,关键字需屏蔽)

软件系统安全测试管理规范

软件系统安全测试 管理规范 上海理想信息产业(集团)有限公司 2020年3月31日

版本历史

【目录】 1概述............................................ 错误!未定义书签。 编写目的................................... 错误!未定义书签。 适用范围................................... 错误!未定义书签。 角色定义................................... 错误!未定义书签。 参考资料................................... 错误!未定义书签。2项目背景........................................ 错误!未定义书签。3软件系统安全测试流程............................ 错误!未定义书签。4测试准备........................................ 错误!未定义书签。 测试准备................................... 错误!未定义书签。 测试对象.............................. 错误!未定义书签。 测试范围.............................. 错误!未定义书签。 工作权责.............................. 错误!未定义书签。 测试方案................................... 错误!未定义书签。 测试准备.............................. 错误!未定义书签。 测试分析.............................. 错误!未定义书签。 制作测试用例.......................... 错误!未定义书签。 实施测试方法.......................... 错误!未定义书签。 回归测试方法.......................... 错误!未定义书签。 测试计划................................... 错误!未定义书签。 实施测试................................... 错误!未定义书签。 回归测试................................... 错误!未定义书签。

测试用例

测试用例 来自:https://www.doczj.com/doc/d69000157.html, 作者:林锐电子工业出版社出版发行 { 项目名称 } 测试用例标题 文件状态: [√] 草稿[ ] 正式发布 [ ] 正在修改文件标识:Company-Project-IT-PLAN 当前版本:X.Y 作者: 完成日期:Year-Month-Day 版本历史 版本/状态作者参与者起止日期备注 目录 0. 文档介绍 0.1 文档目的 0.2 文档范围 0.3 读者对象 0.4 参考文献 0.5 术语与缩写解释 1. 接口-路径测试用例 1.1 被测试对象(单元)的介绍 1.2 测试范围与目的 1.3 测试环境与测试辅助工具的描述 1.4 测试驱动程序的设计 1.5 接口测试用例

1.6 路径测试的检查表 2. 功能测试用例 2.1 被测试对象的介绍 2.2 测试范围与目的 2.3 测试环境与测试辅助工具的描述2.4 测试驱动程序的设计 2.5 功能测试用例 3. 健壮性测试用例 3.1 被测试对象的介绍 3.2 测试范围与目的 3.3 测试环境与测试辅助工具的描述3.4 测试驱动程序的设计 3.5 容错能力/恢复能力测试用例 4. 性能测试用例 4.1 被测试对象的介绍 4.2 测试范围与目的 4.3 测试环境与测试辅助工具的描述4.4 测试驱动程序的设计 4.5 性能测试用例 5. 图形用户界面测试用例 5.1 被测试对象的介绍 5.2 测试范围与目的

5.3 测试环境与测试辅助工具的描述5.4 测试驱动程序的设计 5.5 测试人员分类 5.6 用户界面测试的检查表 6. 信息安全性测试用例 6.1 被测试对象的介绍 6.2 测试范围与目的 6.3 测试环境与测试辅助工具的描述6.4 测试驱动程序的设计 6.5 信息安全性测试用例 7. 压力测试用例 7.1 被测试对象的介绍 7.2 测试范围与目的 7.3 测试环境与测试辅助工具的描述7.4 测试驱动程序的设计 7.5 压力测试用例 8. 可靠性测试用例 8.1 被测试对象的介绍 8.2 测试范围与目的 8.3 测试环境与测试辅助工具的描述8.4 测试驱动程序的设计 8.5 可靠性测试用例

安全性测试测试用例基础

建立整体的威胁模型,测试溢出漏洞、信息泄漏、错误处理、SQL 注入、身份验证和授权错误. 1.输入验证 客户端验证服务器端验证(禁用脚本调试,禁用Cookies) 1.输入很大的数(如4,294,967,269),输入很小的数(负数) 2.输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何 反应 3.输入特殊字符,如:~!@#$%^&*()_+<>:”{}| 4.输入中英文空格,输入字符串中间含空格,输入首尾空格 5.输入特殊字符串NULL,null,0x0d 0x0a 6.输入正常字符串 7.输入与要求不同类型的字符,如: 要求输入数字则检查正值,负值,零值(正零,负零), 小数,字母,空值; 要求输入字母则检查输入数字 8.输入html和javascript代码 9.对于像回答数这样需检验数字正确性的测试点,不仅对比其与问题最终页的回答数, 还要对回答进行添加删除等操作后查看变化 例如: 1.输入”gfhd,看是否出错; 2.输入,看是否出现文本框; 3.输入看是否出现提示。 关于上传: 1.上传文件是否有格式限制,是否可以上传exe文件; 2.上传文件是否有大小限制,上传太大的文件是否导致异常错误,上传0K的文件是否会 导致异常错误,上传并不存在的文件是否会导致异常错误; 3.通过修改扩展名的方式是否可以绕过格式限制,是否可以通过压包方式绕过格式限 制; 4.是否有上传空间的限制,是否可以超过空间所限制的大小,如将超过空间的大文件拆分 上传是否会出现异常错误。 5.上传文件大小大于本地剩余空间大小,是否会出现异常错误。 6.关于上传是否成功的判断。上传过程中,中断。程序是否判断上传是否成功。 7.对于文件名中带有中文字符,特殊字符等的文件上传。 下载: 1.避免输入:\..\web. 2.修改命名后缀。 关于URL: 1.某些需登录后或特殊用户才能进入的页面,是否可以通过直接输入网址的方式进入; 2.对于带参数的网址,恶意修改其参数,(若为数字,则输入字母,或很大的数字,或输入特 殊字符等)后打开网址是否出错,是否可以非法进入某些页面; 3.搜索页面等url中含有关键字的,输入html代码或JavaScript看是否在页面中显示 或执行。 4.输入善意字符。 UBB: [url=http://www.****.com] 你的网站[/url] 1.试着用各种方式输入UBB代码,比如代码不完整,代码嵌套等等.

XX安全性测试报告

XX安全性测试报告

目录 1 概述 (4) 2 测试版本及配套版本 (4) 3 环境描述 (4) 4 主要结论和关键风险 (4) 4.1 主要测试结论 (4) 4.2 关键风险 (4) 5 测试策略 (4) 6 测试过程评估 (4) 6.1 测试执行评估 (5) 6.1.1 测试执行统计数据 (5) 6.1.2 测试用例执行结果统计数据 (5) 7 遗留问题 (7) 7.1.1 遗留问题统计 (7) 7.1.2 遗留问题列表 (7)

XX安全性测试报告 本文档中内容包括测试的总结性报告、测试评估,测试问题报告和测试实测结果清单等内容。关键词: 摘要: 缩略语清单:对本文所用缩略语进行说明,要求提供每个缩略语的英文全名和中文解释。 缩略语英文全名中文解释

1 概述 描述本报告是哪一个测试活动的总结,指明被测对象及其版本/修订级别。 2 测试版本及配套版本 描述测试的时间,地点和测试人员。 描述每轮测试的版本(若使用了补丁,补丁号不能遗漏)。 版本名称测试时间测试人 员名单 测试 地点 配套测试的配套版本 起始时间结束时间产品名称与版本号版本说明 3 环境描述 描述本次测试的测试环境(包括测试组网、配置、测试工具等)。 4 主要结论和关键风险 4.1 主要测试结论 依据测试过程评估、遗留的问题等方面的结论,给出整个版本在本阶段的质量评估。 4.2 关键风险 版本进入下一阶段或进行发布使用的风险、风险影响范围及关键规避措施。 5 测试策略 描述该版本使用的安全性测试策略。如果与以前的策略有出入,需要把更改理由描述出来。 6 测试过程评估

测试用例模板

{ 项目名称} 目录 0. 文档介绍 0.1 文档目的 0.2 文档范围 0.3 读者对象 0.4 参考文献 0.5 术语与缩写解释 1. 接口-路径测试用例 1.1 被测试对象(单元)的介绍 1.2 测试范围与目的 1.3 测试环境与测试辅助工具的描述 1.4 测试驱动程序的设计 1.5 接口测试用例 1.6 路径测试的检查表 2. 功能测试用例

2.1 被测试对象的介绍 2.2 测试范围与目的 2.3 测试环境与测试辅助工具的描述2.4 测试驱动程序的设计 2.5 功能测试用例 3. 健壮性测试用例 3.1 被测试对象的介绍 3.2 测试范围与目的 3.3 测试环境与测试辅助工具的描述3.4 测试驱动程序的设计 3.5 容错能力/恢复能力测试用例 4. 性能测试用例 4.1 被测试对象的介绍 4.2 测试范围与目的 4.3 测试环境与测试辅助工具的描述4.4 测试驱动程序的设计 4.5 性能测试用例 5. 图形用户界面测试用例 5.1 被测试对象的介绍 5.2 测试范围与目的 5.3 测试环境与测试辅助工具的描述

5.4 测试驱动程序的设计 5.5 测试人员分类 5.6 用户界面测试的检查表 6. 信息安全性测试用例 6.1 被测试对象的介绍 6.2 测试范围与目的 6.3 测试环境与测试辅助工具的描述6.4 测试驱动程序的设计 6.5 信息安全性测试用例 7. 压力测试用例 7.1 被测试对象的介绍 7.2 测试范围与目的 7.3 测试环境与测试辅助工具的描述7.4 测试驱动程序的设计 7.5 压力测试用例 8. 可靠性测试用例 8.1 被测试对象的介绍 8.2 测试范围与目的 8.3 测试环境与测试辅助工具的描述8.4 测试驱动程序的设计 8.5 可靠性测试用例

相关主题
文本预览
相关文档 最新文档