文档库 最新最全的文档下载
当前位置:文档库 › WEB安全测试分类及防范测试方法

WEB安全测试分类及防范测试方法

WEB安全测试分类及防范测试方法
WEB安全测试分类及防范测试方法

WEB安全测试分类及防范测试方法

1 Web 应用程序布署环境测试 (3)

1.1HTTP 请求引发漏洞的测试 (3)

1.2 操作系统目录安全性及Web 应用程序布署环境目录遍历问题测试 (3)

2 应用程序测试 (4)

2.1 SQL 注入漏洞测试 (4)

2.1.1 SQL注入漏洞攻击实现原理 (4)

2.1.2 SQL注入漏洞防范措施 (5)

2.1.3 SQL注入漏洞检测方法 (6)

2.2 表单漏洞测试 (7)

2.2.1 表单漏洞实现原理 (7)

2.2.2 表单漏洞防范措施 (7)

2.2.3 表单漏洞检测方法 (7)

2.3 Cookie欺骗漏洞测试 (9)

2.3.1 Cookie欺骗实现原理 (9)

2.3.2 Cookie欺骗防范措施 (9)

2.3.3 Cookie欺骗监测方法 (9)

2.4 用户身份验证测试 (10)

2.4.1 用户身份验证漏洞防范措施 (10)

2.4.2 用户身份验证检测方法 (10)

2.5 文件操作漏洞测试 (10)

2.5.1 文件操作漏洞实现原理 (10)

2.5.2 文件操作漏洞防范措施 (10)

2.5.3 文件操作漏洞检测方法 (11)

2.6 Session 测试 (11)

2.6.1 客户端对服务器端的欺骗攻击 (11)

2.6.2直接对服务器端的欺骗攻击 (12)

2.6.3 Session漏洞检测方法 (13)

2.7 跨网站脚本(XSS)漏洞测试 (13)

2.7.1 跨网站脚本(XSS)漏洞实现原理 (13)

2.7.2 跨网站脚本(XSS)漏洞防范措施 (14)

2.7.3 跨网站脚本(XSS)漏洞测试方法 (14)

2.8 命令注射漏洞测试 (15)

2.9 日志文件测试 (15)

2.10 访问控制策略测试 (15)

2.10.1 访问控制策略测试方法 (15)

3 数据库问题测试 (16)

3.1 数据库名称和存放位置安全检测 (16)

3.2 数据库本身的安全检测 (16)

3.3 数据使用时的一致性和完整性测试 (16)

4 容错测试 (16)

4.1 容错方案及方案一致性测试 (16)

4.2 接口容错测试 (17)

4.3 压力测试 (17)

1 Web 应用程序布署环境测试

用来架构Web 网站的UNIX、LINUX、WINDOWS 等服务器端操作系统和服务器软件都可能存在漏洞(如前不久被发现的LINUX 系统内核漏洞),这些漏洞都会对Web 应用程序造成安全威胁。因此,在布署Web 应用程序前,应对Web 应用程序的布署环境进行严格的测试,检查一切已知的漏洞,发现新的漏洞,将应用程序环境带来的安全威胁降底到最低程度。

1.1HTTP 请求引发漏洞的测试

超长URL 的HTTP 请求,特殊格式字符的HTTP 请求,某些不存在文件的HTTP 请求,COM Internet Services (CIS)–RPC over HTTP 漏洞,从而引发拒绝服务,源代码显示,站点物理路径泄露,执行任意命令及命令注入等安全问题。因此,对非常规URL 的HTTP 请求要做全面的测试,以发现这方面的漏洞。测试工作以人工方式为主,并配以Tripwire和AIDE 的完整性检查工具检查系统文件,对于发现的漏洞,可采取关闭所有不必要的服务和安装系统补丁加固系统。另外要保持对最新补丁和安全公告的追踪,在实验环境进行测试后正式安装在布署Web 应用程序的主机上。

1.2 操作系统目录安全性及Web 应用程序布署环境目录遍历问题测试

目录权限和目录安全性直接影响着Web 的安全性。测试中要检查Web 应用程序布署环境的目录权限和安全性,不给恶意用户任何可用的权限。目录遍历可能导致用户从客户端看到或下载、删除Web 服务器文件。因此,要测试Web 应用程序及布署环境是否存在目录遍历问题;若存在该漏洞,可通过在各级目录中存放默认文档或及时升级系统来避免。1.3 系统中危险组件的测试

系统中危险组件的存在,会给恶意用户留下非常危险的“后门”。如恶意用户可利用Windows 系统中存在的FileSystemObject 组件篡改、下载或删除服务器中的任何文件。因此,若系统中需要使用这些组件,可将这些组件更名;否则将其删除。

1.4 TCP 端口测试

开放非必要的端口,会给Web 应用程序带来安全威胁。因此,在布署Web 应用程序前,要用端口扫描软件对布署环境进行TCP 端口测试,禁止UDP,只开启必要的TCP 端口。另

外,在系统运行过程中要不断测试,在服务器端使用lsof 工具(For Unix)或者Inzider 工具(For windows)扫描端口使用情况,必要时从远程使用Nmap 工具进行异常端口占用检测。如果发现有未知的进程占用端口,要关闭端口或杀掉进程。

2 应用程序测试

应用程序中存在的漏洞是影响Web 安全的主要方面,程序员编写的软件都可能有漏洞,有些漏洞可能要经过许多年后才会被发现。特别是不断新加的功能,这些改动,都会带

来安全方面的问题。因此,应用程序测试要伴随着系统开发、布署和运行的全过程。

2.1 SQL 注入漏洞测试

2.1.1 SQL注入漏洞攻击实现原理

SQL(Structured Query Language)是一种用来和数据库交互的语言文本。SQL注入的攻击原理就是攻击者通过Web应用程序利用SQL语句或字符串将非法的数据插入到服务器端数据库中,获取数据库的管理用户权限,然后将数据库管理用户权限提升至操作系统管理用户权限,控制服务器操作系统,获取重要信息及机密文件。

SQL注入利用的是正常的HTTP服务端口,表面上看来和正常的web访问没有区别,隐蔽性极强,不易被发现。

SQL注入过程

如上图所示,SQL注入攻击过程分为五个步骤:

第一步:判断Web环境是否可以SQL注入。如果URL仅是对网页的访问,不存在SQL注入问题,如:https://www.wendangku.net/doc/ba5358054.html,/162414739931.shtml就是普通的网页访问。只有对数据库进行动态查询的业务才可能存在SQL注入,如:https://www.wendangku.net/doc/ba5358054.html,/webhp?id=39,其中?id =39表示数据库查询变量,这种语句会在数据库中执行,因此可能会给数据库带来威胁。第二步:寻找SQL注入点。完成上一步的片断后,就要寻找可利用的注入漏洞,通过输入一些特殊语句,可以根据浏览器返回信息,判断数据库类型,从而构建数据库查询语句找到注入点。

第三步:猜解用户名和密码。数据库中存放的表名、字段名都是有规律可言的。通过构建特殊数据库语句在数据库中依次查找表名、字段名、用户名和密码的长度,以及内容。这个猜测过程可以通过网上大量注入工具快速实现,并借助破解网站轻易破译用户密码。

第四步:寻找WEB管理后台入口。通常WEB后台管理的界面不面向普通用户

开放,要寻找到后台的登陆路径,可以利用扫描工具快速搜索到可能的登陆地址,依次进行

尝试,就可以试出管理台的入口地址。

第五步:入侵和破坏。成功登陆后台管理后,接下来就可以任意进行破坏行为,如篡改网页、上传木马、修改、泄漏用户信息等,并进一步入侵数据库服务器。

2.1.2 SQL注入漏洞防范措施

SQL注入漏洞攻击的防范方法有很多种,现阶段总结起来有以下方法:

(1)数据有效性校验

如果一个输入框只可能包括数字,那么要通过校验确保用户输入的都是数字。如果可以接受字母,那就要检查是不是存在不可接受的字符,最好的方法是增加字符复杂度自动验证功能。确保应用程序要检查以下字符:分号、等号、破折号、括号以及SQL关键字。另外限制表单数据输入和查询字符串输入的长度也是一个好方法。如果用户的登录名最多只有10个字符,那么不要认可表单中输入10个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度。

(2)封装数据信息

对客户端提交的数据进行封装,不要将数据直接存入cookie中,方法就是在编程的代码中,插入session、if、try、else,这样可以有效地防止攻击者获取cookie中的重要信息。(3)去除代码中的敏感信息

将在代码中存在的用户名、口令信息等敏感字段删除,替换成输入框。

如:SQL=" select from use rs where username = ’admin’and password= ’1234567’ "这样显然会暴露管理员的用户名、口令信息。可以将其修改成SQL= " select * from users where username='" +Txtuser.Text + "' and userpwd='" + Textpwd.Text + "'",这样就安全了很多,入侵者也是不会轻易的就获取到用户名、口令信息。

(4)替换或删除单引号

使用双引号替换掉所有用户输入的单引号,这个简单的预防措施将在很大程度上预防SQL注入漏洞攻击,单引号时常会无法约束插入数据的Value,可能给予输入者不必要的权限。用双引号替换掉单引号可以使大部分SQL注入漏洞攻击失败。

如:“select* from users where username='" + admin + "' and userpwd='" + 1234567+ "'”显然会得到与“select * from users where username='admin' and password= '1234567'”相同的结果。(5)指定错误返回页面

攻击者有时从客户端尝试提交有害代码和攻击字符串,根据Web Service给出的错误提示信息来收集程序及服务器的信息,从而获取想得到的资料。应在Web Service中指定一个不包含任何信息的错误提示页面。

(6)限制SQL字符串连接的配置文件

使用SQL变量,因为变量不是可以执行的脚本,即在Web页面中将连接数据库的SQL 字符串替换成指定的Value,然后将Web.config文件进行加密,拒绝访问。

(7)设置Web目录的访问权限

将虚拟站点的文件目录禁止游客用户(如:Guest用户等)访问,将User用户权限修改成只读权限,切勿将管理权限的用户添加到访问列表。

(8)最小服务原则

Web服务器应以最小权限进行配置,只提供Web服务,这样可以有效地阻止系统的危险命令,如ftp、cmd、vbscript等。

(9)鉴别信息加密存储

将保存在数据库users表中的用户名、口令信息以密文形式保存,也可以对users表进

行加密处理,这样可以大大增加对鉴别信息访问的安全级别。

(10)用户权限分离

应尽可能的禁止或删除数据库中sa权限用户的访问,对不同的数据库划分不同的用户权限,这样不同的用户只能对授权给自己的数据库执行查询、插入、更新、删除操作,就可以防止不同用户对非授权的数据库进行访问。

2.1.3 SQL注入漏洞检测方法

SQL注入漏洞攻击检测分为入侵前的检测和入侵后的检测。入侵前的检测,可以通过手工方式,也可以使用SQL注入漏洞扫描工具软件。检测的目的是为预防SQL注入漏洞攻击,而对于SQL注入漏洞攻击后的检测,主要是针对审计日志的查看,SQL注入漏洞攻击成功后,会在Web Service和数据库的审计日志中留下“痕迹”。检测方法如下:

(1)动态SQL检查

动态的SQL语句是一个进行数据库查询的强大的工具,但把它和用户输入混合在一起就使SQL注入成为了可能。将动态的SQL语句替换成预编译的SQL或者存储过程对大多数应用程序是可行的。预编译的SQL或者存储过程可以将用户的输入作为参数而不是命令来执行,这样就限制了入侵者的行动。当然,它不适用于存储过程中利用用户输入来生成SQL命令的情况。在这种情况下,用户输入的SQL命令仍可能得到执行,数据库仍然存在SQL注入漏洞攻击的危险。

(2)有效性校验

如果一个输入框只可能包括数字,那么要通过验证确保用户输入的都是数字。如果可以接受字母,检查是不是存在不可接受的字符,那就需要设置字符串检查功能。确保应用程序要检查以下字符:分号、等号、破折号、括号以及SQL关键字。

(3)数据表检查

使用SQL注入漏洞攻击工具软件进行SQL注入漏洞攻击后,都会在数据库中生成一些临时表。通过查看数据库中最近新建的表的结构和内容,可以判断是否曾经发生过SQL注入漏洞攻击。

(4)审计日志检查

在Web服务器中如果启用了审计日志功能,则Web Service审计日志会记录访问者的IP 地址、访问时间、访问文件等信息,SQL注入漏洞攻击往往会大量访问某一个页面文件(存在SQL注入点的动态网页),审计日志文件会急剧增加,通过查看审计日志文件的大小以及审计日志文件中的内容,可以判断是否发生过SQL注入漏洞攻击事件;另外还可以通过查看数据库审计日志,查询某个时间段是否有非法的插入、修改、删除操作。

(5)其他

SQL注入漏洞攻击成功后,入侵者往往会添加特权用户(如:administrator、root、sa 等)、开放非法的远程服务以及安装木马后门程序等,可以通过查看用户帐户列表、远程服务开启情况、系统最近日期产生的一些文件等信息来判断是否发生过入侵。

SQL 注入攻击源于英文“SQL Injection Attack”。微软技术中心从两个方面对SQL 注入攻击进行了描述:一是脚本注入式的攻击;二是恶意用户输入用来影响被执行的SQL脚本。Stephen Kost 对这种攻击形式的描述是“从一个数据库获得未经授权的访问和直接检索”。SQL 注入就其本质而言,是利用SQL 语法,对应用程序中的漏洞的攻击。当攻击者能够操纵数据,在应用程序中插入一些SQL 语句时,SQL 注入攻击就发生了。理论上,这种攻击对于所有基于SQL 语言标准的数据库软件都是有效的,包括MS SQL Server,Oracle,DB2,Sybase,MySQL等。特别是现在一些AQL 注入攻击工具的出现,使得Web应用更易遭到SQL

注入攻击。原始的手工测试不适用于大型Web 应用程序,可使用N-Stealth、WebInspect、Wikto WebScarab、Nikto 等工具进行扫描,测试系统是否存在SQL 注入的安全漏洞。为防止SQL 注入,程序员编写代码时,要对客户端和服务端进行两级检查。检查数据类型、数据长度和敏感字符的合法性。客户端检查可减少网络流量,降低服务器负荷,将一般误操作、低等级攻击与高等级攻击行为区分开来。对于绕开客户端检查的攻击,提交的数据被直接发往服务端,服务端检查到的提交异常基本可以认定为恶意攻击行为所致,就应中止提交信息的处理,进行攻击备案,并对客户端给出出错或警告提示。另外,在构造查询时,应根据用户输入的内容设置参数值来创建参数化查询,从而避免SQL 注入及由此带来的安全问题。

2.2 表单漏洞测试

2.2.1 表单漏洞实现原理

表单提交是当前Web应用中的重要内容,用户可以通过这种方式与服务器进行数据传递。在通常情况下,会在提交表单之前在服务器上进行表单数据的验证,这样可以节省服务器资源,但同时也为服务器带来了安全漏洞。

表单提交的数据的验证和服务端数据接收的方法直接影响到Web 的安全。随着大量的支持参数的“模糊化”(“fuzzing”)、腐朽(corruption)、以及野蛮强制增长工具的出现,使用非校验输入进行攻击造成的安全问题越来越多。因此,表单漏洞测试是Web 安全所必需的。

2.2.2 表单漏洞防范措施

为防止表单漏洞的攻击,编程时应有一个中心化的、强大的验证机制来对所有HTTP 请求的输入进行验证,过滤可能危及后台数据库的特殊字符、脚本语言和命令。

为防止攻击者绕过客户端的安全机制,对这些字符的检测应在Web 服务端实现,采用清除或者强制替换的方法避免服务器端的安全,并且使用MD5 哈希(hash)函数或者时间戳数字签名技术对客户端敏感数据必须进行完整性保护。

解决这种漏洞的方法为在提交表单页面进行校验的同时,在接收表单的处理页面也进行校验,这样即使用户使用非法方式提交的非法数据通过了页面验证也无法通过服务器上的验证。

2.2.3 表单漏洞检测方法

⑴表单数据提交测试。

●对表单数据提交的测试,主要检查程序中是否对表单所提交数据的完整性、正确性进行

了验证(如果在页面部分进行验证的话),如:查询条件输入一些特殊字符,比如“--”,“…,,?”,““”等会使查询的SQL语句出错

●检查程序中是否屏蔽了表单提交的html 语句、VBScript 和Jscript 等客户端脚本语句●检查是否会出现“脚本利用”问题

●检查程序是否对表单域长度进行了真正的限制

●检查是否存在重复提交数据的问题

检查这些验证是否在服务器端进行

对表单提交数据的测试,可以采用手工和编写可重复使用的脚本代码相结合的方法,进行边界值测试、等价类测试,以及异常类测试。编写的脚本代码可以在测试、回归测试时运行。

若在测试中发现数据完整性、正确性验证只是在客户端进行,应在服务器端增加对表单提交数据的验证,防止出现本地提交表单的漏洞。

⑵本地提交表单的漏洞测试。

本地提交表单的漏洞容易受到参数篡改的攻击。这类测试可用手工的方式进行。

对于如下用户注册页面:

1.

21.

22.

23.

24.

25.

此页面中的JavaScript对表单中用户名和密码是否为空进行了判断,如果用户名或密码有一者为空时就会将"提交"按钮设置为不可用,这样可以阻止用户的提交。

但是这个页面的内容可以完全通过查看页面源代码的方式看到,用户可以通过查看源代码的方式将其中的JavaScript部分去掉,同时将表单action请求指向此页面原来的地址,然后将修改后的页面保存为一个静态HTML页面,这样就可以完成一个非法的数据提交。修改之后的页面代码如下:

1.

2.

3.

4.

5.

如此一个页面,完全允许用户提交任何一种数据,包括空的用户名和密码。

2.3 Cookie欺骗漏洞测试

2.3.1 Cookie欺骗实现原理

Cookie最先是由Netscape(网景)公司提出的,Netscape官方文档中对Cookie的定义是这样的:Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。

Cookie的用途非常广泛,在网络中经常可以见到Cookie的身影。它通常被用来辨别用户身份、进行session跟踪,最典型的应用就是保存用户的账号和密码用来自动登录网站和电子商务网站中的“购物车”。

Cookie注入简单来说就是利用Cookie而发起的注入攻击。从本质上来讲,Cookie注入与传统的SQL注入并无不同,两者都是针对数据库的注入,只是表现形式上略有不同罢了。

2.3.2 Cookie欺骗防范措施

(1)删除Cookie记录

在IE浏览器【工具】 【Internet选项】中删除Cookie,也可借助相应安全软件来实现。(2)更改Cookie文件的保存位置

在【Internet选项】对话框中单击【设置】按钮,在设置页面单击【移动文件夹】出现如下图,在其中设置相应保存位置(如F:\),即可成功更改Cookie文件的保存位置。

(3)添加防注入代码

2.3.3 Cookie欺骗监测方法

如果系统使用了cookie,就要对cookie 的使用情况进行检测。检查Cookies 在生存期

内能否正常工作而且对这些信息是否加密,是否按预定的时间进行保存,是否存在cookie 可被伪造提交的问题,刷新对Cookie 有什么影响及过期处理等。

2.4 用户身份验证测试

2.4.1 用户身份验证漏洞防范措施

●限制用户名、密码最大字符数、字符类型

●限制登录次数,超出允许次数后给出友好提示

●限制用户权限

用户身份验证,客户端提交的密码需加密,服务端验证密码使用MD5,若在测试中发现问题,应及时修改代码,使用加密码算法对密码加密。

2.4.2 用户身份验证检测方法

●测试有效和无效的用户名和密码,测试是否大小写敏感,是否有最大字符数的限制规则

等。

●测试重试次数的限制,如果登录失败的次数超过允许值,应用程序将会做出何种反应

(譬如拒绝此IP地址在短时间内的登录)。

●测试是否可以利用历史登录信息或以前的URL来绕开登录程序。

●测试执行添加、删除、修改等动作中是否需要登录操作,退出系统之后的操作是否仍可

继续等。

●测试用户密码是否符合指定要求(字符、长度),如果不符合,对有什么影响,新用户

自己修改密码后,创建时分配的密码是否会失效。

●测试用户账户过期后,是否完全、正确的删除其信息或使其失效。

●是否存在不验证而直接进入Web 应用系统的问题,是否存在不登录就可查看非会员页

面和权限问题。

用户身份验证测试一般使用手工和测试工具相结法的方法,若在测试中发现问题,应及时修改代码,使用加密码算法对密码加密,采用Session 对象进行登录验证。

2.5 文件操作漏洞测试

2.5.1 文件操作漏洞实现原理

上存漏洞常见有,文件名检测漏洞,还有就是文件格式检查漏洞。另外还有一个,就是保存文件存在漏洞。这类漏洞,主要是可以读取用户传入路径名称,采用不正确的过滤方法,导致恶意用户,将文件上存到非预期的地方,带来安全隐患。

2.5.2 文件操作漏洞防范措施

抓住几个地方即可,先来分析下,既然用户要上存文件,而且文件将是多种多样格式;

可能有的文件内容与用户传入格式不一致,有的文件内容还夹杂木马代码。那么,我们让用户上存文件,跟站点文件做一个分别授权,做隔离。

●让保存上存目录独立开来,目录权限只读不能执行

这一步从系统设计加以授权,无论你上次什么文件,都不可能执行到。就算我不做任何检测,你的文件都上存到这里了,也不会对我系统构成安全。(如果有用户上存一些反动言语的图片,那另外需要处理的)

●不直接使用服务器传入值,所有都要进行检测

这类跟我们做一切输入都是有害原则一样,对于客户端传入的:type, name ,都要进行判断,不直接使用。对于要生成到某个目录,某个文件名。

文件名最好方法是:自己写死目录(不要读取传入目录),文件名,最好自己随机生成,不读取用户文件名。文件扩展名,可以取最右边”.”后面字符。

以上2个方法,刚好从2个方面对上存做了整体约束。

方法1:只要保证文件写对了位置,然后从配置上,对写入目录进行权限控制,这个是治本。可以做到,你无论上存什么文件,都让你没有权限跳出去可以运行。

方法2 :保存上存文件名,按照自己指定目录写入,并且文件名自己生成的。

以上2个方法,一起使用,可以保证文件正确存到地方,然后,权限可以控制。这里顺便说明下,判断用户上存文件是否满足要求类型,就直接检查文件扩展名,只要满足扩展名就让上存。反正,做了执行权限限制,你不按要求上存内容,也无妨。反正,不能执行,也不会有多大危害性的。

正确步骤:

1.读取文件名,验证扩展名是不是在范围内

2.自己定义生成的文件名,目录,扩展名可以来自文件名扩展名。其它值,都自己配置,不读取上存中内容

3.将文件移到新目录(这个目录权限设置只读)

2.5.3 文件操作漏洞检测方法

●测试系统是否允许上传脚本文件、可执行文件等有可能给系统带来危害的文件。

●若有下载功能,可供下载的文件是否与系统的程序分别存放,是否存在数据库文件、包

含文件和页面文件下载的可能。

文件操作漏洞测试一般使用手工测试的方法,若发现问题,应及时修改代码并将可供下载的文件重新布署。

2.6 Session 测试

2.6.1 客户端对服务器端的欺骗攻击

2.6.1.1 攻击原理

在用户访问并登录了某个网站后,该网站的服务器就会给该用户机子上分配一个sessionid,此信息是通过客户机的cookies存放在某一文件夹里面的。session本身并不是长期有效,每一个session在客户端关闭浏览器后sessionid都会自动撤销,但服务端默认保存

20分钟。正是有这20分钟的时间,给欺骗带来了可能。服务器端对不同用户的识别,只能通过sessionid进行,也就是说网站服务器端是“只认id不认人”,只要id符合,就认为是合法用户,所以攻击者只要得到了被攻击对象的sessionid就可以以被攻击对象的身份合法登录,而20分钟的默认保留值,也使得攻击者即使在被攻击对象关闭浏览器后依然有一定的时间成功登录。

当前利用此原理进行攻击的常用手法是利用网站本身的xss漏洞或者是诱骗被攻击者点击相应链接,以使其隐蔽访问攻击者事先假设好的网站并执行恶意代码,获取被攻击者的cookies信息从而得到sessionid。最后用可以修改sessionid的浏览器或其它可以提交数据的工具伪装成被攻击者的id合法登录。

2.6.1.2 防范措施

此类攻击过程较为隐蔽,但也有其局限性。因为session本身有时间限制,特别是用户在关闭浏览器后,留给攻击者的时间也只有20分钟。另外,在触发机制上,盗窃cookies 代码的执行必须是用户自己触发,也就是说,用户什么时候触发代码,攻击者是不知道的,从用户触发恶意代码到session失效,攻击者只有很短的时间进行非法活动。

所以,要对此类攻击进行防范,客户端本身应对陌生人给出的超级链接保持警惕,特别是对比较长的超链接更要小心。每次登录网站后应该及时利用网站的退出功能退出和清除本机的cookies。另外登录密码的设置不要过于简单,尽量使用字母与数字组合,密码长度应该在8位以上。网站管理员在开发网站时要注意检查网站的xss漏洞,要注意session有效期的设置,一般不要把有效期设置太长,这样即使真的被攻击也能让其非法活动时间大大缩短。

2.6.2直接对服务器端的欺骗攻击

2.6.2.1 攻击原理

与客户端欺骗不同,此类攻击是对服务器端的直接欺骗。网站开发者在管理员管理页面通常都会有session验证,目的是为了验证当前登录者是否为合法用户。

但如果攻击者能够在登录管理页面前,使用某种手段使得session(”admin”)被赋值(不一定是网站开发者所赋予的值)则验证代码则无法拦截此类非法登录。从而达到了直接欺骗服务器而以管理员身份直接登录的目的。

当前利用此原理进行攻击的常用手法是都是在取得了某网站域名下的某个webshell进行的。如许多免费空间网站都会在主域名下允许用户有自己的二级域名,而此域名的目录又和网站主目录在同一站点下,这样就为欺骗攻击提供了条件。而其它一些网站由于自身的xss等漏洞,使得用户拿下某个webshell,从而也使欺骗攻击成为了可能。在具备了欺骗必备条件后,攻击者还必须知道session验证的源码,从而才能编写恶意代码绕过系统原有的验证。当然,如果验证源码是上文所列的情况,则攻击者只需知道session所用变量即可,因为其并没有给出具体的赋值,只是简单的验证是否为空。攻击者只要赋任意值即可通过此验证。

2.6.2.2 防范措施

此类攻击手法也相当隐蔽,危害极大。因为攻击一旦成功,则攻击者即可以管理员身份非法登录。从此类欺骗攻击的原理我们知道,此攻击要成功必须具备多个先决条件:获得该域名下的一个webshell或者攻击网站与被欺骗网站在同一主站的同一目录下;被攻击主站采取了session验证管理页面;获得被攻击站点的session验证源码;知道被攻击主站的管理页面地址。

所以我们要防范此类攻击,就只能从几个限制条件考虑。网站开发者应该尽量避免各种漏洞,站点在使用前应该经过周密而详尽的测试,从而降低被发现漏洞的可能。对于网站源码不能轻易泄露,特别是在公开场合。如果是使用公开源码假设的网站,更要把源码关键部位更改。本攻击欺骗的关键源码部位即session验证源码。

2.6.3 Session漏洞检测方法

(1)Session互窜

Session互窜即是用户A的操作被用户B执行了。

验证Session互窜,其原理还是基于权限控制,如某笔订单只能是A进行操作,或者只能是A才能看到的页面,但是B的session窜进来却能够获得A的订单详情等。 Session互窜方法:多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,然后在其中一个TAB页执行退出操作,登陆用户B,此时两个TAB页都是B的session,然后在另一个A的页面执行操作,查看是否能成功。预期结果:有权限控制的操作,B不能执行A页面的操作,应该报错,没有权限控制的操作,B执行了A页面操作后,数据记录是B的而不是A 的。

(2)Session超时

基于Session原理,需要验证系统session是否有超时机制,还需要验证session超时后功能是否还能继续走下去。测试方法:

1、打开一个页面,等着10分钟session超时时间到了,然后对页面进行操作,查看效果。

2、多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,然后在其中一个TAB 页执行退出操作,马上在另外一个页面进行要验证的操作,查看是能继续到下一步还是到登录页面。

Session 测试主要检查Web 应用系统是否有超时的限制,也就是检查用户登录后在一定时间内没有点击任何页面,是否需要重新登录才能正常使用,检查超时后能否自动退出,退出之后,浏览器回退按钮是否可以回到登录页面。Session 测试一般使用手工测试和工具测试相结合的方法,若发现问题,应及时修改代码。

2.7 跨网站脚本(XSS)漏洞测试

2.7.1 跨网站脚本(XSS)漏洞实现原理

跨站脚本漏洞(Cross Site Scripting,常简写作XSS)是Web应用程序在将数据输出到网页的时候存在问题,导致攻击者可以将构造的恶意数据显示在页面的漏洞。因为跨站脚本攻击都是向网页内容中写入一段恶意的脚本或者HTML代码,故跨站脚本漏洞也被叫做HTML

注入漏洞(HTML Injection)。

与SQL注入攻击数据库服务器的方式不同,跨站脚本漏洞是在客户端发动造成攻击,也就是说,利用跨站脚本漏洞注入的恶意代码是在用户电脑上的浏览器中运行的。

2.7.2 跨网站脚本(XSS)漏洞防范措施

下列规则旨在防止所有发生在应用程序的XSS攻击,虽然这些规则不允许任意向HTML 文档放入不可信数据,不过基本上也涵盖了绝大多数常见的情况。你不需要采用所有规则,很多企业可能会发现第一条和第二条就已经足以满足需求了。请根据自己的需求选择规则。(1)不要在允许位置插入不可信数据

第一条规则就是拒绝所有数据,不要将不可信数据放入HTML文档,除非是下列定义的插槽。这样做的理由是在理列有解码规则的HTML中有很多奇怪的context,让事情变得很复杂,因此没有理由将不可信数据放在这些context中。

(2)在向HTML元素内容插入不可信数据前对HTML解码

这条规则适用于当你想把不可信数据直接插入HTML正文某处时,这包括内部正常标签(div、p、b、td等)。大多数网站框架都有HTML解码的方法且能够躲开下列字符。但是,这对于其他HTML context是远远不够的,你需要部署其他规则。

(3)在向HTML常见属性插入不可信数据前进行属性解码

这条规则是将不可信数据转化为典型属性值(如宽度、名称、值等),这不能用于复杂属性(如href、src、style或者其他事件处理程序)。这是及其重要的规则,事件处理器属性(为HTML JavaScript Data Values)必须遵守该规则。

2.7.3 跨网站脚本(XSS)漏洞测试方法

对于呈增长趋势的跨站脚本(XSS)攻击,可使用内嵌检测的方式进行处理。使用

WebInspect 工具识别所有的假造参数,使用DevInspect 工具通过特定代码关联在页面上发现安全缺陷,对于显示代码,采用CSE HTML Validator工具进行测试。若在检测中发现系统存在跨站脚本(X SS)漏洞,使用输出数据编码也就是将任何数据返回给用户前均采用HTML 编码,可以有效防止跨站点脚本攻击。因为通过HTML 编码,可将大多数脚本命令自动转换为无害文本。

2.8 命令注射漏洞测试

命令注射漏洞测试主要检查所有调用外部资源(例如system、exec、fork,或者所有的发出请求的语法的源代码,查找那些来自于HTTP 请求的输入可能发起调用的所有地方。使用相同功能的专门的库函数来代替shell 命令和一些系统调用,可以抵御命令注射的攻击,另外一种避免命令注射的保护措施就是确保Web 应用程序只是根据它所要执行某个功能时所需的最小权限来实现这个功能。如果必须使用外部命令的话,任何被插入命令的用户信息必须仔细地审查,设立一定的机制来处理可能出现的错误、超时、或者在调用过程中出现的阻塞。

2.9 日志文件测试

日志文件测试主要检查Web 运行的相关信息是否写进了日志文件、是否可追踪,是否记录了系统运行中发生的所有错误,是否记录了用户的详细信息,包括用户的浏览器、用户停留的时间、用户IP 等。记录了用户的IP,就能通过追捕查出用户的具体地点。错误作为日志保留下来,可供技术人员分析错误是由系统实现漏洞引起的还是由于黑客攻击引起的。

2.10 访问控制策略测试

访问控制策略是网络安全防范和保护的主要策略,其任务是保证网络资源不被非法使用和非法访问。各种网络安全策略必须相互配合才能真正起到保护作用,而访问控制是保证网络安全最重要的核心策略之一。访问控制策略包括入网访问控制策略、操作权限控制策略、目录安全控制策略、属性安全控制策略、网络服务器安全控制策略、网络监测、锁定控制策略和防火墙控制策略等7个方面的内容。

2.10.1 访问控制策略测试方法

●主要检查管理接口是否只有授权的管理员才允许进行访问(对于支持多种管理角色的网

站接口往往是内部或者外部攻击者的攻击目标)

●是否有完善的访问控制策略文档(如果该文档不存在的话,这个网站很可能存在着漏洞),

文档中是否精确定义了每类用户可以访问的功能和内容

●检查是否只有授权的数据可被访问(如果存在着不同类型或不同组别的数据可以通过接

口被访问到)。

主要用于需要验证用户身份以及权限的页面,复制该页面的url地址,关闭该页面以后,查看是否可以直接进入该复制好的地址;

例:从一个页面链到另一个页面的间隙可以看到URL地址,直接输入该地址,可以看到自

己没有权限的页面信息;

3 数据库问题测试

在Web 应用中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。因此,Web 应用系统中数据库安全测试是一个重要的方面。与数据库相关的应用级漏洞如SQL 注入和跨站点脚本攻击等问题前面已提及,在此只讨论数据库本身及数据库使用方面的漏洞。

3.1 数据库名称和存放位置安全检测

一个常规的数据库名称,并且存放在与Web 应用程序文件相同或相关的位置,很容易被下载。若在程序代码中包含有数据库名称和数据库文件绝对位置,一旦代码丢失,同样存在暴库的危险。因此,在布署数据库和编写相关的代码时,要避免问题的发生。

3.2 数据库本身的安全检测

对数据库本身的安全检测主要检查数据库是否配置了不同的存取权限,所有操作是否都可以审计追踪,敏感数据是否加密等。为了保证数据库的安全,不同权限的用户定义不同的视图,以限制用户的访问范围;不同的敏感数据采取不同的加密算法,重要的数据分开存储。

3.3 数据使用时的一致性和完整性测试

Web 应用系统中,使用数据库时,可能发生数据的一致性和完整性错误,因此,要检测系统中是否有事务管理和故障恢复功能,确认事务数据是否正确保存,检测系统是否有定期数据备份功能。

4 容错测试

正常操作时,Web 应用程序也总会有错误出现,如内存溢出、空指针异常、系统调用失败、数据库不可用、网络超时等。不当的出错处理可能给网站带来各种各样的安全问题,因此,要对Web 应用程序的错误处理进行测试,以保证为用户提供一份有意义的出错信息,为网站维护人员提供诊断信息,而不是为攻击者提供有用的信息。

4.1 容错方案及方案一致性测试

出错处理应该在整个网站中保持一致性,并且每一个出32错处理片断都应该是一个整体设计方案中的一部分。通过代码检查,测试系统差错处理方案是否合理,方案是否可以处理所有可能发生的错误,方案中是否存在泄漏设计细节的问题,是否存在不同的差错处理方

案。

4.2 接口容错测试

检测浏览器与服务器的接口是否正确,中断用户到服务器的网络连接时,系统是否能够正确处理数据;对于有外部接口的Web 系统,如网上商店可能要实时验证信用卡数据以减少欺诈行为的发生,中断Web 服务器到信用卡验证服务器的连接,检测系统是否能够正确处理这些错误,是否对信用卡进行收费。另外,还要测试系统是否能够处理外部服务器返回的所有可能的消息。

4.3 压力测试

压力测试是实际破坏一个Web 应用系统,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web 应用系统崩溃,接着当系统重新

启动时获得存取权。压力测试的区域包括表单、登录和其他信息传输页面,可以采用ab (Apache 的测试工具)和OpenSTA(开发系统测试架构)等相应的工具进行自动化测试。

web常用测试方法

一、输入框 1、字符型输入框: (1)字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝”功能尝试输入。 (2)长度检查:最小长度、最大长度、最小长度-1、最大长度+1、输入超工字符比如把整个文章拷贝过去。 (3)空格检查:输入的字符间有空格、字符前有空格、字符后有空格、字符前后有空 格 (4)多行文本框输入:允许回车换行、保存后再显示能够保存输入的格式、仅输入回 车换行,检查能否正确保存(若能,检查保存结果,若不能,查看是否有正常提示)、(5)安全性检查:输入特殊字符串 (null,NULL, ,javascript,,,<html>,<td>)、输入脚本函数(<script>alert("abc")</script>)、doucment.write("abc")、<b>hello</b>) 2、数值型输入框: (1)边界值:最大值、最小值、最大值+1、最小值-1 (2)位数:最小位数、最大位数、最小位数-1最大位数+1、输入超长值、输入整数(3)异常值、特殊字符:输入空白(NULL)、空格或 "~!@#$%^&*()_+{}|[]\:"<>?;',./?;:'-=等可能导致系统错误的字符、禁止直接输入特殊字符时,尝试使用粘贴拷贝查看是否能正常提交、word中的特殊功能,通过剪贴板 拷贝到输入框,分页符,分节符类似公式的上下标等、数值的特殊符号如∑,㏒,㏑,∏,+,-等、 输入负整数、负小数、分数、输入字母或汉字、小数(小数前0点舍去的情况,多个小数点的情况)、首位为0的数字如01、02、科学计数法是否支持1.0E2、全角数字与半角数字、数字与字母混合、16进制,8进制数值、货币型输入(允许小数点后面几位)、(4)安全性检查:不能直接输入就copy 3、日期型输入框: (1)合法性检查:(输入0日、1日、32日)、月输入[1、3、5、7、8、10、12]、日输入[31]、月输入[4、6、9、11]、日输入[30][31]、输入非闰年,月输入[2],日期输入[28、29]、输入闰年,月输入[2]、日期输入[29、30]、月输入[0、1、12、13] (2)异常值、特殊字符:输入空白或NULL、输入~!@#¥%……&*(){}[]等可能导致系统错误的字符 (3)安全性检查:不能直接输入,就copy,是否数据检验出错? 4、信息重复:在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否 作出正确处理. 二、搜索功能 若查询条件为输入框,则参考输入框对应类型的测试方法 1、功能实现:</p><h2>web安全考试</h2><p>web安全测试</p><p>————————————————————————————————作者:————————————————————————————————日期:</p><p>Web安全测试——手工安全测试方法及修改建议发表于:2017-7-17 11:47 作者:liqingxin 来源:51Testing软件测试网采编 字体:大中小 | 上一篇 | 下一篇 | 打印 |我要投稿 | 推荐标签:软件测试工具XSS安全测试工 具 常见问题 1.XSS(CrossSite Script)跨站脚本攻击 XSS(CrossSite Script)跨站脚本攻击。它指的是恶意攻击者往Web 页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web 里面的html 代码会被执行,从而达到恶意用户的特殊目的。 测试方法: 在数据输入界面,添加记录输入:<script>alert(/30141/)</script>,添加成功如果弹出对话框,表明此处存在一个XSS 漏洞。 或把url请求中参数改为<script>alert(/30141/)</script>,如果页面弹出对话框,表明此处存在一个XSS 漏洞 修改建议: 过滤掉用户输入中的危险字符。对输入数据进行客户端和程序级的校验(如通过正则表达式等)。 Eg:对用户输入的地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤 2.CSRF与跨站脚本(XSS) CSRF与跨站脚本(XSS),是指请求迫使某个登录的浏览器向易受攻击的Web应用发送一个请求,然后以受害者的名义,为入侵者的利益进行所选择的行动。</p><h2>WEB应用渗透测试的步骤</h2><p>渗透测试的两大阶段 渗透测试不能测试出所有可能的安全问题,它只是一个特定环境下才合适的WEB应用安全测试技术。OWASP的渗透测试方法是基于墨盒方法的,测试人员在测试前不知道或只知道很有限的关于被测试应用的信息。 渗透测试被分成两大阶段: ■ 被动模式阶段 在这个阶段,测试人员试图去理解被测应用的逻辑,并且去使用它。可以使用工具去收集信息,例如,可以用HTTP代理工具去观察所有请求与响应。本阶段结束后,测试人员应该理解了应用的所有访问点(如,HTTP报头、参数和COOKIE)。信息收集一节将介绍如何进行被动模式的测试。 ■ 主动模式阶段 这个阶段里,测试人员将利用后述的9大类66种方法主动地去测试。 被动模式阶段 信息收集 安全评估的第一步是收集尽可能多的关于被测应用的信息。信息收集是渗透测试的必要步骤。通常使用公共工具(搜索引擎)、扫描器、发送简单或特别的HTTP请求等来迫使被测应用泄漏信息。 ◆使用蜘蛛、机器人和爬虫 目标是浏览和捕获被测应用相关的资源。 ◆搜索引擎发现与侦察 类似GOOGLE这样的搜索引擎可以用来发现被测应用中已经被公开的错误页面或WEB应用结构问题。 ◆识别应用入口点 枚举被测应用及其攻击面是展开任何攻击的的一个关键性前提。 ◆测试WEB应用指纹 应用指纹是信息收集的第一步。知道正在运行的WEB服务器的版本和类型后,测试人员可以确定已知的漏洞和测试过程中的相应攻击方法。获取WEB应用指纹的自动化工具Httprint和在线工具Netcraft。 ◆应用发现 应用发现是一项面向驻留在WEB/应用服务器中的WEB应用识别的活动。这种分析很重要,因为没有一个链接直接连接到主要应用的后端。分析可以发现有助于揭示诸如用于管理目的的WEB应用程序的细节。此外,它可以揭示诸如取消删除的,过时的脚本文件,这些文件通常是在测试、开发或维护过程产生的。可能使用到的工具: 1、DNS查询工具,如nslookup,dig等。</p><h2>Web安全测试规范</h2><p>DKBA 华为技术有限公司内部技术规范 DKBA Web应用安全测试规范 2009年7月5日发布2009年7月5日实施华为技术有限公司 Huawei Technologies Co., Ltd. 版权所有侵权必究 All rights reserved</p><p>修订声明Revision declaration 本规范拟制与解释部门: 安全解决方案部电信网络与业务安全实验室、软件公司安全TMG、软件公司测试业务管理部本规范的相关系列规范或文件: 《Web应用安全开发规范》 相关国际规范或文件一致性: 《OWASP Testing Guide v3》 《信息安全技术信息安全风险评估指南》 《Information technology Security techniques Management of information and communications technology security》-ISO 13335 替代或作废的其它规范或文件: 无 相关规范或文件的相互关系: 本规范以《Web应用安全开发规范》为基础、结合Web应用的特点而制定。</p><p>目录Table of Contents 1概述错误!未定义书签。 背景简介错误!未定义书签。 适用读者错误!未定义书签。 适用范围错误!未定义书签。 安全测试在IPD流程中所处的位置错误!未定义书签。 安全测试与安全风险评估的关系说明错误!未定义书签。 注意事项错误!未定义书签。 测试用例级别说明错误!未定义书签。 2测试过程示意图错误!未定义书签。 3Web安全测试规范错误!未定义书签。 自动化Web漏洞扫描工具测试错误!未定义书签。 AppScan application扫描测试错误!未定义书签。 AppScan Web Service 扫描测试错误!未定义书签。 服务器信息收集错误!未定义书签。 运行帐号权限测试错误!未定义书签。 Web服务器端口扫描错误!未定义书签。 HTTP方法测试错误!未定义书签。 HTTP PUT方法测试错误!未定义书签。 HTTP DELETE方法测试错误!未定义书签。 HTTP TRACE方法测试错误!未定义书签。 HTTP MOVE方法测试错误!未定义书签。 HTTP COPY方法测试错误!未定义书签。 Web服务器版本信息收集错误!未定义书签。 文件、目录测试错误!未定义书签。 工具方式的敏感接口遍历错误!未定义书签。 Robots方式的敏感接口查找错误!未定义书签。 Web服务器的控制台错误!未定义书签。 目录列表测试错误!未定义书签。 文件归档测试错误!未定义书签。 认证测试错误!未定义书签。 验证码测试错误!未定义书签。 认证错误提示错误!未定义书签。 锁定策略测试错误!未定义书签。 认证绕过测试错误!未定义书签。 找回密码测试错误!未定义书签。 修改密码测试错误!未定义书签。 不安全的数据传输错误!未定义书签。 强口令策略测试错误!未定义书签。 会话管理测试错误!未定义书签。 身份信息维护方式测试错误!未定义书签。 Cookie存储方式测试错误!未定义书签。 用户注销登陆的方式测试错误!未定义书签。 注销时会话信息是否清除测试错误!未定义书签。 会话超时时间测试错误!未定义书签。</p><h2>WEB测试环境搭建和测试方法</h2><p>WEB测试时搭建测试环境所需的软硬件包括:电脑一台、JDK1.6、Tomcat7.0、mysql、IE 浏览器、Firefox浏览器、Chrome浏览器、SVN客户端 通过SVN客户端导出最新的Web工程部署到Tomcat7.0下的webapps中,另外重要的一 点就是修改数据库连接的配置文件,连接到正确的测试数据库(企业一般有开发人员所用的数据库和测试人员所用的数据库),数据库连接的配置文件在WEB-INF文件夹下,修改好数据库的配置文件后,在Tomcat7.0\bin\startup.bat启动Tomcat,在Tomcat没报错的情况下,用浏览器访问后台,出现一个登录界面,这样,一个简单完整的Web测试环境就搭建起来了! 二、Web测试方法 1、链接测试 链接是web应用系统的一个主要特征,它表示页面与页面直接的切换和用户不知道具体地 址去访问其他页面的手段,如果页面不能跳转或者是访问失败,有很大程度上是web应用程序的链接出问题了;其中有一个重要的性能指标就是链接速度的测试,用户打开一个页面或者是去访问另外一个页面,如果web系统响应时间太长(例如超过5秒钟),用户就会因没耐心而离开,还有就是有些页面有超时的限制,这样可能引起数据丢失,使用户得不到真实的页面。 2、数据库测试 在web应用技术中,数据库起着重要的作用,数据库为web应用系统的管理、运行、查询和实现用户对数据存储的请求提供空间,也就是说用户在页面进行各类操作,如添加、查询 删除等一系列动作,都会被数据库记录。 3、浏览器测试 浏览器是web客户端最核心的构件,来自不同厂商的浏览器对不同开发语言开发的应用程序有不同的支持,这就需测试人员对主流的浏览器和不同版本的浏览器进行有效的测试。</p><h2>Web安全系统测试要求规范</h2><p>DKBA DKBA 2355-2009.7 .2cto.红黑联盟收集整理 Web应用安全测试规V1.2 2009年7月5日发布2009年7月5日实施 所有侵权必究 All rights reserved</p><p>修订声明Revision declaration 本规拟制与解释部门: 安全解决方案部电信网络与业务安全实验室、软件公司安全TMG、软件公司测试业务管理部 本规的相关系列规或文件: 《Web应用安全开发规》 相关国际规或文件一致性: 《OWASP Testing Guide v3》 《信息安全技术信息安全风险评估指南》 《Information technology Security techniques Management of information and communications technology security》-ISO 13335 替代或作废的其它规或文件: 无 相关规或文件的相互关系: 本规以《Web应用安全开发规》为基础、结合Web应用的特点而制定。</p><p>目录Table of Contents 1概述 (7) 1.1背景简介 (7) 1.2适用读者 (7) 1.3适用围 (7) 1.4安全测试在IPD流程中所处的位置 (8) 1.5安全测试与安全风险评估的关系说明 (8) 1.6注意事项 (9) 1.7测试用例级别说明 (9) 2测试过程示意图 (10) 3WEB安全测试规 (11) 3.1自动化W EB漏洞扫描工具测试 (11) 3.1.1AppScan application扫描测试 (12) 3.1.2AppScan Web Service 扫描测试 (13) 3.2服务器信息收集 (13) 3.2.1运行权限测试 (13) 3.2.2Web服务器端口扫描 (14) 3.2.3HTTP方法测试 (14) 3.2.4HTTP PUT方法测试 (15) 3.2.5HTTP DELETE方法测试 (16) 3.2.6HTTP TRACE方法测试 (17) 3.2.7HTTP MOVE方法测试 (17) 3.2.8HTTP COPY方法测试 (18) 3.2.9Web服务器版本信息收集 (18) 3.3文件、目录测试 (20) 3.3.1工具方式的敏感接口遍历 (20) 3.3.2Robots方式的敏感接口查找 (21)</p><h2>Web应用安全测试方案</h2><p>1 Web 安全测试技术方案 1.1测试的目标 更好的发现当前系统存在的可能的安全隐患,避免发生危害性的安全事件 更好的为今后系统建设提供指导和有价值的意见及建议 1.2测试的范围 本期测试服务范围包含如下各个系统: Web 系统: 1.3测试的内容 1.3.1WEB 应用 针对网站及WEB 系统的安全测试,我们将进行以下方面的测试: Web 服务器安全漏洞 Web 服务器错误配置 SQL 注入 RSS (跨站脚本) CRLF 注入 目录遍历 文件包含 输入验证 认证逻辑错误 GoogleHacAing 密码保护区域猜测字典攻击特定的错误页面检测脆弱权限的目录危险的HTTP</p><p>方法(如:PUT、DELETE) 1.4测试的流程 方案制定部分:获取到客户的书面授权许可后,才进行安全测试的实施。并且将实施范围、方法、时间、人员等具体的方案与客户进行交流,并得到客户的认同。 在测试实施之前,让客户对安全测试过程和风险知晓,使随后的正式测试流程都在客户的控制下。 信息收集部分:这包括:操作系统类型指纹收集;网络拓扑结构分析;端口扫描和目标系统提供的服务识别等。采用商业和开源的检测工具(AWVS 、burpsuite 、Nmap 等)进行收集。 测试实施部分:在规避防火墙、入侵检测、防毒软件等安全产品监控的条件下进行:操作系统可检测到的漏洞测试、应用系统检测到的漏洞测试(如:Web 应用),此阶段如果成功的话,可能获得普通权限。 安全测试人员可能用到的测试手段有:扫描分析、溢出测试、口令爆破、社会工程学、客户端攻击、中间人攻击等,用于测试人员顺利完成工程。在获取到普通权限后,尝试由普</p><h2>最新Web应用安全测试方案</h2><p>精品文档 1 Web安全测试技术方案 1.1 测试的目标更好的发现当前系统存在的可能的安全隐患,避免发生危害性的安全事件更好的为今 后系统建设提供指导和有价值的意见及建议 1.2 测试的范围 本期测试服务范围包含如下各个系统: Web系统: 1.3 测试的内容 1.3.1 WEB^ 用 针对网站及WEB系统的安全测试,我们将进行以下方面的测试: Web 服务器安全漏洞 Web 服务器错误配置 SQL 注入 XSS (跨站脚本) CRLF 注入 目录遍历 文件包含 输入验证 认证 逻辑错误 Google Hacking 密码保护区域猜测字典攻击特定的错误页面检测脆弱权限的目录危险的HTTP 方法(如:PUT、DELETE) 1.4 测试的流程 方案制定部分: 精品文档 获取到客户的书面授权许可后,才进行安全测试的实施。并且将实施范围、方法、时间、人员等具体的方案与客户进行交流,并得到客户的认同。 在测试实施之前,让客户对安全测试过程和风险知晓,使随后的正式测试流程都在客户的控制下。 信息收集部分:</p><p>这包括:操作系统类型指纹收集;网络拓扑结构分析;端口扫描和目标系统提供的服务识别等。采用商业和开源的检测工具(AWVS burpsuite、Nmap等)进行收集。 测试实施部分: 在规避防火墙、入侵检测、防毒软件等安全产品监控的条件下进行:操作系统可检测到的漏洞测试、应用系统检测到的漏洞测试(如:Web应用),此阶段如果成功的话,可能获得普通权限。 安全测试人员可能用到的测试手段有:扫描分析、溢出测试、口令爆破、社会工程学、客户端攻击、中间人攻击等,用于测试人员顺利完成工程。在获取到普通权限后,尝试由普通权限提升为管理员权限,获得对系统的完全控制权。此过程将循环进行,直到测试完成。最后由安全测试人员清除中间数据。 分析报告输出: 安全测试人员根据测试的过程结果编写直观的安全测试服务报告。内容包括:具体的操作步骤描述;响应分析以及最后的安全修复建议。 下图是更为详细的步骤拆分示意图: 精品文档 1.5 测试的手段 根据安全测试的实际需求,采取自动化测试与人工检测与审核相结合的方式,大大的减少了自动化测试过程中的误报问题。</p><h2>Web网站测试流程和方法</h2><p>一、测试流程 所有测试的流程大体上是一致的:开始测试前准备-->需求分析-->测试设计(测试计划,测试用例)-->执行测试--> 提交BUG-->测试总结。 对于web测试,较之其他软件测试又有所不同,这是细节的不同,这个不同需要我们在不停的测试中去总结 web测试正式测试之前,应先确定如何开展测试,不可盲目的测试。一般网站的测试,应按以下流程来进行: 1)使用HTML Link Validator将网站中的错误链接找出来; 2)测试的顺序为:自顶向下、从左到右; 3)查看页面title是否正确。(不只首页,所有页面都要查看); 4)LOGO图片是否正确显示; 5)LOGO下的一级栏目、二级栏目的链接是否正确; 6)首页登录、注册的功能是否实现; 7)首页左侧栏目下的文章标题、图片等链接是否正确; 8)首页中间栏目下的文章标题、图片等链接是否正确; 9)首页右侧栏目下的文章标题、图片等链接是否正确; 10)首页最下方的【友情链接】、【关于我们】等链接是否正确; 11)进入一级栏目或二级栏目的列表页。查看左侧栏目名称,右侧文章列表是否正确; 12)列表页的分页功能是否实现、样式是否统一; 13)查看文章详细页面的内容是否存在乱码、页面样式是否统一; 14)站内搜索(各个页面都要查看)功能是否实现; 15)前后台交互的部分,数据传递是否正确;</p><p>16) 默认按钮要支持Enter及选操作,即按Enter后自动执行默认按钮对应操作。 二、UI测试 UI测试包括的内容有如下几方面: 1)各个页面的样式风格是否统一; 2)各个页面的大小是否一致;同样的LOGO图片在各个页面中显示是否大小一致;页面及图片是否居中显示; 3)各个页面的title是否正确; 4)栏目名称、文章内容等处的文字是否正确,有无错别字或乱码;同一级别的字体、大小、颜色是否统一; 5)提示、警告或错误说明应清楚易懂,用词准确,摒弃模棱两可的字眼; 6)切换窗口大小,将窗口缩小后,页面是否按比例缩小或出现滚动条;各个页面缩小的风格是否一致,文字是否窜行; 7)父窗体或主窗体的中心位置应该在对角线焦点附近;子窗体位置应该在主窗体的左上角或正中;多个子窗体弹出时应该依次向右下方偏移,以显示出窗体标题为宜; 8)按钮大小基本相近,忌用太长的名称,免得占用过多的界面位置;避免空旷的界面上放置很大的按钮;按钮的样式风格要统一;按钮之间的间距要一致; 9)页面颜色是否统一;前景与背景色搭配合理协调,反差不宜太大,最好少用深色或刺目的颜色; 10)若有滚动信息或图片,将鼠标放置其上,查看滚动信息或图片是否停止; 11)导航处是否按相应的栏目级别显示;导航文字是否在同一行显示; 12)所有的图片是否都被正确装载,在不同的浏览器、分辨率下图片是否能正确显示(包括位</p><h2>Web安全测试的步骤</h2><p>安全测试方面应该参照spi的web安全top 10来进行。 目前做软件测试人员可能对安全性测试了解不够,测试结果不是很好。如果 经验不足,测试过程中可以采用一些较专业的web安全测试工具,如WebInspect、Acunetix.Web.Vulerability.Scanner等,不过自动化web安全测试的最大缺陷就是误 报太多,需要认为审核测试结果,对报告进行逐项手工检测核对。 对于web安全的测试用例,可以参照top 10来写,如果写一个详细的测试用例,还是比较麻烦的,建议采用安全界常用的web渗透报告结合top10来写就可以了。 现在有专门做系统和网站安全检测的公司,那里做安全检测的人的技术都很好,大多都是红客。 再补充点,网站即使站点不接受信用卡支付,安全问题也是非常重要的。Web 站点收集的用户资料只能在公司内部使用。如果用户信息被黑客泄露,客户在进行交易时,就不会有安全感。 目录设置 Web 安全的第一步就是正确设置目录。每个目录下应该有 index.html 或 main.html 页面,这样就不会显示该目录下的所有内容。我服务的一个公司没有执 行这条规则。我选中一幅图片,单击鼠标右键,找到该图片所在的路径 "…com/objects/images".然后在浏览器地址栏中手工输入该路径,发现该站点所有 图片的列表。这可能没什么关系。我进入下一级目录"…com/objects" ,点击jackpot.在该目录下有很多资料,其中引起我注意的是已过期页面。该公司每个月 都要更改产品价格,并且保存过期页面。我翻看了一下这些记录,就可以估计他 们的边际利润以及他们为了争取一个合同还有多大的降价空间。如果某个客户在谈判之前查看了这些信息,他们在谈判桌上肯定处于上风。 SSL 很多站点使用 SSL 进行安全传送。你知道你进入一个 SSL 站点是因为浏览器 出现了警告消息,而且在地址栏中的HTTP 变成HTTPS.如果开发部门使用了SSL,测试人员需要确定是否有相应的替代页面(适用于3.0 以下版本的浏览器,这些浏 览器不支持SSL.当用户进入或离开安全站点的时候,请确认有相应的提示信息。 是否有连接时间限制?超过限制时间后出现什么情况? 登录</p><h2>WEB测试工作流程</h2><p>WEB测试方法 在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。 本文将 web 测试分为 6 个部分: ? ? ? (包括负载/压力测试)? ? 用户界面测试? ? 兼容性测试? ? ? ? 接口测试 1</p><p>功能测试 链接测试 链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。? 表单测试 当用户通过表单提交信息的时候,都希望表单能正常工作。 如果使用表单来进行在线注册,要确保提交按钮能正常工作,当注册完成后应返回注册成功的消息。如果使用表单收集配送信息,应确保程序能够正确处理这些数据,最后能让顾客收到包裹。要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。 当用户使用表单进行用户注册、登陆、信息提交等操作时,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,</p><h2>Web测试方法与流程</h2><p>Web网站测试方法 在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet 和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。 本文将 web 测试分为 6 个部分: 1. 功能测试 2. 性能测试(包括负载/压力测试) 3. 用户界面测试 4. 兼容性测试 5. 安全测试 6. 接口测试 本文的目的是覆盖 web 测试的各个方面,未就某一主题进行深入说明。 1 功能测试 1.1 链接测试 链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。 链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。 采取措施:采用自动检测网站链接的软件来进行。 推荐软件: Xenu Link Sleuth 免费绿色免安装软件 HTML Link Validator 共享(30天试用) 1.2 表单测试 当用户通过表单提交信息的时候,都希望表单能正常工作。 如果使用表单来进行在线注册,要确保提交按钮能正常工作,当注册完成后应返回注册成功的消息。如果使用表单收集配送信息,应确保程序能够正确处理这些数据,最后能让顾客能让客户收到包裹。要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。 当用户使用表单进行用户注册、登陆、信息提交等操作时,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。 1.3 数据校验 如果系根据业务规则需要对用户输入进行校验,需要保证这些校验功能正常工作。例如,省份的字段可以用一个有效列表进行校验。在这种情况下,需要验</p><h2>WEB测试方法及注意点</h2><p>WEB测试方法及注意点 1.页面部分 (1)页面清单是否完整(是否已经将所需要的页面全部都列出来了) (2)页面是否显示(在不同分辨率下页面是否存在,在不同浏览器版本中页面是是否显示) (3)页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确) (4)页面特殊效果(如特殊字体效果、动画效果)是否显示 (5)页面特殊效果显示是否正确 2.页面元素部分 (1)页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等) (2)素是否显示(元素是否存在) (3)页面元素是否显示正确(主要针对文字、图形、签章) (4)页面元素的外形、摆放位置(如按钮、列表框、核选框、输入框、超连接等)(5)页面元素基本功能是否实现(如文字特效、动画特效、按钮、超连接) (6)页面元素的容错性列表(如输入框、时间列表或日历) (7)页面元素的容错性是否存在 (8)页面元素的容错性是否正确 3.功能部分 (1)数据初始化是否执行 (2)数据初始化是否正确 (3)数据处理功能是否执行 (4)数据处理功能是否正确 (5)数据保存是否执行 (6)数据保存是否正确 (7)是否对其他功能有影响</p><p>(8)如果影响其他功能,系统能否作出正确的反应 (9)其他错误 (10)对模块的具体功能进行测试时可以列出功能模块的所有功能,进行排列组合,测试所有情况 (1)如:某一功能模块具有最基本的增删改查功能,则需要进行以下测试 (2)单项功能测试(增加、修改、查询、删除) (3)增加——>增加——>增加(连续增加测试) (4)增加——>删除 (5)增加——>删除——>增加(新增加的内容与删除内容一致) (6)增加——>修改——>删除 (7)修改——>修改——>修改(连续修改测试) (8)修改——>增加(新增加的内容与修改前内容一致) (9)修改——>删除 (10)修改——>删除——>增加(新增加的内容与删除内容一致) (11)删除——>删除——>删除(连续删除测试) (12)查询功能分为两种情况,验证操作结果。 一、打开页面时自动显示结果,则不特别强调; 二、需要手工操作进行查询,则每次在其他功能完成后进行。 4.提示信息 (1)成功、失败提示 (2)操作结果提示 (3)确认提示 (4)危险操作、重要操作提示 (5)返回页面提示后显示的页面 5.容错性 注意以下几种情况 (1)为空、非空 (2)唯一性 (3)字长、格式 (4)数字、邮政编码、金额、电话、电子邮件、ID号、密码 (5)日期、时间 (6)特殊字符(对数据库)英文单、双引号,&符号</p><h2>web安全性测试</h2><p>WEB 安全性测试 第一章:预备知识: 1.1 SQL 语句基础 1.2 HTML语言 HTML(HyperTextMark-upLanguage)即超文本标记语言,是WWW的描述语言。html 是在 sgml 定义下的一个描述性语言,或可说 html 是 sgml 的一个应用程式,html 不是程式语言,它只是标示语言。 实例: <html> <body> <form action="MAILTO:https://www.wendangku.net/doc/ba5358054.html," method="post" enctype="text/plain"> <h3>这个表单会把电子发送到 W3School。</h3> :<br /> <input type="text" name="name" value="yourname" size="20"> <br /> 电邮:<br /> <input type="text" name="mail" value="yourmail" size="20"> <br /> 容:<br /> <input type="text" name="comment" value="yourcomment" size="40"> <br /><br /> <input type="submit" value="发送"> <input type="reset" value="重置"> </form> </body> </html> 表单提交中Get和Post方式的区别有5点 1. get是从服务器上获取数据,post是向服务器传送数据。 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单各个字段与其容放置在HTML HEADER一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。</p><h2>Web测试方法</h2><p>一:Web 测试总结(1) 测试是一种思维,包括情感思维和智力思维,情感思维主要体现在一句俗语:思想决定行动上(要怀疑一切),智力思维主要体现在测试用例的设计上。具有了这样的思想,就会找出更多的bug。(^_^个人认为,不代表官方立场) 对于一个web网站来说,主要从这么几个大的方面来进行测试: 1、功能测试; 2、界面测试; 3、易用性测试; 4、兼容性测试; 5、链接测试; 6、业 务流程测试;7、安全性测试 下面主要从以上七个方面进行叙述: 一、功能测试 测试用例是测试的核心,测试用例的设计是一种思维方式的体现,在用例的设计中,用的比较多的方法是边界值分析法和等价类划分法,下面主要从输入框,搜索功能,添加、修改功能,删除功能,注册、登录功能以及上传图片功能等11个方面进行总结说明。 1、输入框 输入框是测试中最容易出现bug的地方,所以在测试时,一定要多加注意。</p><p>2、搜索功能 (1)比较长的名称是否能查到? (2)空格或空 (3)名称中含有特殊字符,如:' $ % & *以及空格等(4)关键词前面或后面有空格</p><p>(5)如果支持模糊查询,搜索名称中任意一个字符是否能搜索到 (6)输入系统中不存在与之匹配的条件 (7)两个查询条件是否为2选1,来回选择是否出现页面错误 (8)输入脚本语言,如:<script>alter(“abc”)</script>等 3、添加、修改功能 (1)是否支持tab键 (2)是否支持enter键 (3)不符合要求的地方是否有错误提示 (4)保存后,是否也插入到数据库中? (5)字段唯一的,是否可以重复添加 (6)对编辑页列表中的每个编辑项进行修改,点击保存,是否保存成功? (7)对于必填项,修改为空、空格或其他特殊符号,是否可以编辑成功 (8)在输入框中,直接回车 (9)是否能够连续添加 (10)在编辑的时候,要注意编辑项的长度限制,有时,添加时有长度限制,但编辑时却没有(添加和修改规则是否一致) (11)添加时,字段是唯一的,不允许重复,但有时,编辑时,却可以修改为相同字段(相同字段包括是否区分大小写以及在输入内容的前后输入空格) (12)添加含有特殊符号或空格的内容 (13)对于有图片上传功能的编辑框,对于没有上传的图片,查看编辑页面时,是否显示默认图片,如果上传了图片,是否显示为上传图片? 4、删除功能 (1)输入正确数据前加空格,看是否能正确删除? (2)是否支持enter键 (3)是否能连续删除多个产品?当只有一条数据时,能否成功删除?</p><h2>如何进行WEB安全性测试</h2><p>WEB的安全性测试主要从以下方面考虑: 目录 1.SQL Injection(SQL注入) (1) 2.Cross-site scritping(XSS):(跨站点脚本攻击) (3) 3.CSRF:(跨站点伪造请求) (6) 4.Email Header Injection(邮件标头注入) (6) 5.Directory Traversal(目录遍历) (7) 6.exposed error messages(错误信息) (7) 1.SQL Injection(SQL注入) (1)如何进行SQL注入测试? ?首先找到带有参数传递的URL页面,如搜索页面,登录页面,提交评论页面等等. 注1:对于未明显标识在URL中传递参数的,可以通过查看HTML源代码中的"FORM"标签来辨别是否还有参数传递.在<FORM> 和</FORM>的标签中间的每一个参数传递都有可能被利用. <form id="form_search" action="/search/" method="get"> <div> <input type="text" name="q" id="search_q" value="" /> <input name="search" type="image" src="/media/images/site/search_btn.gif" /> <a href="/search/" class="fl">Gamefinder</a> </div> </form> 注 2:当你找不到有输入行为的页面时,可以尝试找一些带有某些参数的特殊的URL,如HTTP://DOMAIN/INDEX.ASP?ID=10 ?其次,在URL参数或表单中加入某些特殊的SQL语句或SQL片断,如在登录页面的URL中输入HTTP://DOMAIN /INDEX.ASP?USERNAME=HI' OR 1=1--</p><h2>web安全测试要点总结解析</h2><p>一、Web 应用安全威胁分为如下六类: (2) 二、常见针对Web 应用攻击的十大手段 (2) 三、Rational AppScan功能简介 (3) 四、Web安全体系测试 (4) 五、web安全测试的checklist (5) 六、跨站点脚本攻击测试要点 (7) 七、Cookie: (10) 八、跨站点攻击: (12) 九、DOS攻击: (13) 十、暴力破解 (14) 十一、 sql注入 (15)</p><p>一、Web 应用安全威胁分为如下六类: Authentication(验证) 用来确认某用户、服务或是应用身份的攻击手段。 Authorization(授权) 用来决定是否某用户、服务或是应用具有执行请求动作必要权限的攻击手段。 Client-Side Attacks(客户侧攻击) 用来扰乱或是探测Web 站点用户的攻击手段。 Command Execution(命令执行) 在Web 站点上执行远程命令的攻击手段。 Information Disclosure(信息暴露) 用来获取Web 站点具体系统信息的攻击手段。 Logical Attacks(逻辑性攻击) 用来扰乱或是探测Web 应用逻辑流程的攻击手段 二、常见针对Web 应用攻击的十大手段 应用威胁负面影响后果跨网站脚本攻击标识盗窃,敏感数据丢失…黑客可以模拟合法用户,控 制其帐户。 注入攻击通过构造查询对数据库、LDAP 和其他系统进行非法查询。黑客可以访问后端数据库信息,修改、盗窃。 恶意文件执行在服务器上执行Shell 命令 Execute,获取控制权。被修改的站点将所有交易传送给黑客 不安全对象引用黑客访问敏感文件和资源Web 应用返回敏感文件内 容 伪造跨站点请求黑客调用Blind 动作,模拟合法 用户黑客发起Blind 请求,要求进行转帐</p><h2>Web界面测试方法技巧以及注意事项</h2><p>Web界面测试方法技巧以及注意事项 2010-08-05 13:29:15 作者:yehon出处:天极网软件频道责任编辑:杨玲分享至微博 Web界面设计好之后,需要做详细的测试。下面我和大家分享自己在做Web 界面测试的测试点以及应该注意的一些问题。 我们通过用户界面测试来核实用户与软件的交互来进行界面测试,必须明确UI测试的目的——确保用户界面向用户提供了适当的访问和浏览对象功能的操作,除此之外,UI测试还却表UI功能内部的对象符号预期的要求,并遵循公司和行业的标准。 接下来,我们具体的分析一下界面测试的依据从哪些方面着手。 测试目标: 1、窗口与窗口之间、字段与字段之间的浏览,以及各种访问方法(tab键、鼠标移动和快捷键)的使用 2、窗口的对象和特征(例如、菜单、大小、位置、状态和中心)都符号标准 测试方法: 为每个窗口创建或修改测试,以核实各个应用程序窗口和对象都可正确的进行浏览,并处于正常的对象状态。 我们在实际工作当中,针对web应用程序,也就是经常所说的B/S系统,可以从如下方面来进行用户界面测试、 1、导航测试 导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等; 不同的链接页面之间,通过考虑下列问题,可以决定一个web应用系统是否易于导航;导航是否直观?web系统的主要部分是否可通过主页存取?web系统是否需要站点地图、搜索引擎或其他的导航帮助 当然,这些同美工以及客户需求有关。我们是根据已经确认的页面进行测试即可。 2、图形测试 图形包括图片、动画、边框、颜色、字体、背景、按钮等。</p><p>(1) 要确保图形有明确的用途,图片或动画不要胡乱的堆在一起,以免浪费传输时间,web应用系统的图片尺寸要尽量地小,并且要能清楚的说明某件事情。一般都链接到某个具体的页面 (2)验证所有页面字体的风格是否一致 (3)背景颜色与字体颜色和背景色相搭配 (4)图片的大小和质量,一般采用jpg或gif压缩,最好能使用图片的大小减小到30k以下 (5)演示文字回绕是否正确,如果说明文字指向右边的图片,应该确保该图片出现在右边,不要因为使用图片而使窗口和段落排列古怪或者出现骨性。 3、内容测试 内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。信息的正确性是指信息是可靠的还是误传的。信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓"相关文章列表" 4、表格测试 需要验证表格是否设置正确,用户是否需要向右滚动页面才能看见产品的价格? 把价格放在左边,产品细节放在右边是否更有效? 每一栏的宽度是否足够宽,表格里的文字是否都有折行? 是否因为某一格的内容太多,而将整行的内容拉长? 5、整体界面测试 整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如、当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致? 对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web 应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。 对所有的用户界面测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。 Web界面测试中需要注意的细节问题:</p><h2>网站安全性测试</h2><p>网站安全测评 一.Web应用系统的安全性测试区域主要有: (1)现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。 (2)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。 (3)为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。 (4)当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。 (5)服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。 二.一个完整的WEB安全性测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密。参数操作、异常管理、审核和日志记录等几个方面入手。 1.安全体系测试 1) 部署与基础结构 a. 网络是否提供了安全的通信 b. 部署拓扑结构是否包括内部的防火墙 c. 部署拓扑结构中是否包括远程应用程序服务器 d.基础结构安全性需求的限制是什么 e.目标环境支持怎样的信任级别 2) 输入验证</p><p>a. 如何验证输入 b.是否清楚入口点 c.是否清楚信任边界 d. 是否验证Web页输入 e.是否对传递到组件或Web服务的参数进行验证 f.是否验证从数据库中检索的数据 g.是否将方法集中起来 h.是否依赖客户端的验证 i.应用程序是否易受SQL注入攻击 j. 应用程序是否易受XSS攻击 k.如何处理输入 3)身份验证 a. 是否区分公共访问和受限访问 b.是否明确服务帐户要求 c.如何验证调用者身份 d. 如何验证数据库的身份 e.是否强制试用帐户管理措施 4)授权 a.如何向最终用户授权 b.如何在数据库中授权应用程序 c.如何将访问限定于系统级资源 5)配置管理 a.是否支持远程管理 b.是否保证配置存储的安全 c.是否隔离管理员特权 6)敏感数据 a.是否存储机密信息 b.如何存储敏感数据 c.是否在网络中传递敏感数据 d.是否记录敏感数据</p></div> </div> <div> <div>相关文档</div> <div class="relatedtopic"> <div id="tabs-section" class="tabs"> <ul class="tab-head"> <li id="20408859"><a href="/topic/20408859/" target="_blank">web安全性测试</a></li> <li id="7971789"><a href="/topic/7971789/" target="_blank">web测试方法</a></li> </ul> </div> </div> </div> </div> <div class="category"> <span class="navname">相关文档</span> <ul class="lista"> <li><a href="/doc/2a2221142.html" target="_blank">最新Web应用安全测试方案</a></li> <li><a href="/doc/dc12238754.html" target="_blank">web安全测试方法</a></li> <li><a href="/doc/455796594.html" target="_blank">web安全性测试</a></li> <li><a href="/doc/5315440791.html" target="_blank">web安全性测试</a></li> <li><a href="/doc/914787256.html" target="_blank">Web应用安全测试方案</a></li> <li><a href="/doc/0b2002017.html" target="_blank">Web测试</a></li> <li><a href="/doc/b29204469.html" target="_blank">最新Web应用安全测试方案</a></li> <li><a href="/doc/2312984225.html" target="_blank">Web应用安全测试方案</a></li> <li><a href="/doc/5b7190093.html" target="_blank">网站安全性测试</a></li> <li><a href="/doc/732410018.html" target="_blank">Web安全测试规范V1.3</a></li> <li><a href="/doc/bc1163104.html" target="_blank">Web网站安全性测试用例</a></li> <li><a href="/doc/2b1256372.html" target="_blank">Web安全系统测试要求规范</a></li> <li><a href="/doc/d211151249.html" target="_blank">常见的web安全性测试点</a></li> <li><a href="/doc/3510468387.html" target="_blank">软件测试实践教程-第7章Web安全性测试</a></li> <li><a href="/doc/5514590434.html" target="_blank">常见的web安全性测试点</a></li> <li><a href="/doc/95124969.html" target="_blank">web安全测试</a></li> <li><a href="/doc/bb8673068.html" target="_blank">web网页测试用例(非常实用)</a></li> <li><a href="/doc/2610473098.html" target="_blank">web安全测试</a></li> <li><a href="/doc/d515313186.html" target="_blank">web常见安全问题以及测试方法</a></li> <li><a href="/doc/5c4816779.html" target="_blank">web安全测试要点总结解析</a></li> </ul> <span class="navname">最新文档</span> <ul class="lista"> <li><a href="/doc/0719509601.html" target="_blank">幼儿园小班科学《小动物过冬》PPT课件教案</a></li> <li><a href="/doc/0e19509602.html" target="_blank">2021年春新青岛版(五四制)科学四年级下册 20.《露和霜》教学课件</a></li> <li><a href="/doc/9319184372.html" target="_blank">自然教育课件</a></li> <li><a href="/doc/3019258759.html" target="_blank">小学语文优质课火烧云教材分析及课件</a></li> <li><a href="/doc/db19211938.html" target="_blank">(超详)高中语文知识点归纳汇总</a></li> <li><a href="/doc/af19240639.html" target="_blank">高中语文基础知识点总结(5篇)</a></li> <li><a href="/doc/9919184371.html" target="_blank">高中语文基础知识点总结(最新)</a></li> <li><a href="/doc/8b19195909.html" target="_blank">高中语文知识点整理总结</a></li> <li><a href="/doc/8019195910.html" target="_blank">高中语文知识点归纳</a></li> <li><a href="/doc/7f19336998.html" target="_blank">高中语文基础知识点总结大全</a></li> <li><a href="/doc/7a19336999.html" target="_blank">超详细的高中语文知识点归纳</a></li> <li><a href="/doc/6719035160.html" target="_blank">高考语文知识点总结高中</a></li> <li><a href="/doc/6a19035161.html" target="_blank">高中语文知识点总结归纳</a></li> <li><a href="/doc/4d19232289.html" target="_blank">高中语文知识点整理总结</a></li> <li><a href="/doc/3a19258758.html" target="_blank">高中语文知识点归纳</a></li> <li><a href="/doc/2519396978.html" target="_blank">高中语文知识点归纳(大全)</a></li> <li><a href="/doc/2419396979.html" target="_blank">高中语文知识点总结归纳(汇总8篇)</a></li> <li><a href="/doc/1f19338136.html" target="_blank">高中语文基础知识点整理</a></li> <li><a href="/doc/ef19066069.html" target="_blank">化工厂应急预案</a></li> <li><a href="/doc/bc19159069.html" target="_blank">化工消防应急预案(精选8篇)</a></li> </ul> </div> </div> <script> var sdocid = "b47c1147a417866fb84a8e86"; </script> <div class="footer"> <p><a href="/tousu.html" target="_blank">侵权投诉</a>  © 2013-2023 www.wendangku.net  <a href="/sitemap.html">站点地图</a> | <a href="https://m.wendangku.net">手机版</a></p> <p><a href="https://beian.miit.gov.cn" target="_blank">闽ICP备11023808号-7</a>  本站文档均来自互联网及网友上传分享,本站只负责收集和整理,有任何问题可通过上访投诉通道进行反馈</p> </div> <script type="text/javascript">foot();</script> </div> </body> </html>