已阅读5页,还剩107页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 112 web 安全工作总结 一、 Web 应用安全威胁分为如下六类: Authentication 用来确认某用户、服务或是应用身份的攻击手段。 Authorization 用来决定是否某用户、服务或是应用具有执行请求动作必要权限的攻击手段。 Client-Side Attacks 用来扰乱或是探测 Web 站点用户的攻击手段。 Command Execution 在 Web 站点上执行远程命令的攻击手段。 2 / 112 Information Disclosure 用来获取 Web 站点具体系统信息的攻击手段。 Logical Attacks 用来扰乱或是探测 Web 应用逻辑流程的攻击手段 二、 应用威胁 常见针对 Web 应用攻击的十大手段 负面影响 标识盗窃,敏感数据丢失 通过构造查询对数据库、 LDAP 和其他系 统进行非法查询。 后果 黑客可以模拟合法用户,控制其帐户。 黑客可以访问后端数据库信息,修改、盗窃。 跨网站脚本攻击 注入攻击 恶意文件执行 在服务器上执行 Shell 命令 Execute,获被修改的站点将所有交易传送给黑客 3 / 112 取控制权。 不安全对象引用 伪造跨站点请求 信息泻露和不正确的 错误处理 被破坏的认证和 Session 管理 不安全的木马存储 不安全的通讯 黑客访问敏感文件和资源 黑客调用 Blind 动作,模拟合法用户 黑客得到详细系统信息 Web 应用返回敏感文件内容 黑客发起 Blind 请求,要求进行转帐 恶意的系统检测可能有助于更深入的攻击 Session token 没有被很好的保护 在用户推出系统后,黑客能够盗窃 session。 4 / 112 过于简单的加密技术导致黑客破解编密码 隐秘信息被黑客解密盗窃 敏感信息在不安全通道中以非加密方式传 送 黑客可以通过嗅探器嗅探敏感信息,模拟合法用户。 黑客可以强行访问一些登陆网页、历 史网页。 URL 访问限制失效 黑客可以访问非授权的资源连接 三、 Rational AppScan 功能简介 Rational AppScan 同时提供了很多高级功能,帮助客户对复杂应用进行检测。支持的扫描配置有: ? ? ? ? 5 / 112 ? ? ? ? ? ? Starting URL:起始 URL,制定被测应用的起始地址 Custom Error Pages:制定错误网页提高测试效率 Session IDs:管理测试过程中的 session Automatic Server Detection:自动检测应用所在的应用服务器、 web server、操作系统 Exclusion and Inclusion:制定哪些 Web 被扫描或者被排除,哪些文件类型不被扫描 Scan Limits:其他高级扫描限制,例如扫描次数限制等 Advanced:扫描的方式,是宽度扫描还是深度扫描 Communication Settings:对扫描中的延时、线程数量进行配置 Proxy Settings:代理设置 vLogin/logout:对被测应用的登陆进行设置,可以采用录制回放的方式、也可以使6 / 112 用自动登陆的方式 configure a Test Policy: 配置测试测量,即想测试哪些漏洞。 四、 Web 安全体系测试 一个完整的 Web 安全体系测试可以从部署与基础结构,输入验证, 身份验证,授权,配置管理,敏感数据,会话管理,加密,参数操作,异常管理,审核和日志记录等几个方面入手。 数据加密:某些数据需要进行信息加密和过滤后才能进行数据传输,例如用户信用卡信 息、用户登陆密 码信息等。此时需要进行相应的其他操作,如存储到数据库、解密发送要用户电子邮箱或者客 户浏览器。目前的加密算法越来越多,越来越复杂,但一般数据加密的过程时可逆的,也就是 说能进行加密,同时需要能进行解密! 注:对登陆帐户和密码进行加密,可在后台数据库查看是 否进行了加密。 7 / 112 登录: 一般的应用站点都会使用登录或者注册后使用的方式,因此,必须对用户名 和匹配的密码进 行校验,以阻止非法用户登录。在进行登陆测试的时候,需要考虑输入的密码是否对大小写敏 感、是否有长度和条件限制,最多可以尝试多少次登录,哪些页面或者文件需要登录后才能访 问 /下载等。 超时限制: WEB 应用系统需要有是否超时的限制,当用户长时间不作任何操作的时候, 需要重新登录才能 使用其功能。 SSL: 越来越多的站点使用 SSL安全协议进行传送。SSL是 Security Socket Lauer(安全套接字协 议层 )的缩写,是由 Netscape 首先发表的网络数据安全传输协议。 SSL 是利用公开密 钥 /私 8 / 112 有密钥的加密技术。,在位于 HTTP 层和 TCP 层之间,建立用户与服务器之间的加密 通信,确保所传递信息的安全性。 SSL 是工作在公共密钥和私人密钥基础上的,任何用户都 可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。进入一个 SSL站点 后,可以看到浏览器出现警告信息,然后地址栏的 http 变成 https,在做 SSL 测试的时候, 需要确认这些特点,以及是否有时间链接限制等一系列相关的安全保护。 服务器脚本语言:脚本语言是常见的安全隐患。每种语言的细节有所不同。有些脚本允许访问根目录。其 他只允许访问邮件服务器,但是经验丰富的黑客可以将服务器用户名和口令发送给他们 自己。找出站点使用了哪些脚本语言,并研究该语言的缺陷。9 / 112 还要需要测试没有经过授 权,就不能在服务器端放置和编辑脚本的问题。最好的办法是订阅一个讨论站点使用的 脚本语言安全性的新闻组。 注:黑客利用脚本允许访问根目录的这个安全隐患特性攻击网站。这个网站包含了脚本代码就可能有这个安全隐患。 日志文件:在服务器上,要验证服务器的日志是否正常工作,例如 CPU 的占用率是否很高,是否有例外的 进 程占用,所有的事务处理是否被记录等。 目录: WEB 的目录安全是不容忽视的一个因素。如果WEB程序或 WEB服务器的处理不适当,通过简 单的 URL 替换和推测,会将整个 WEB目录完全暴露给用户,这样会造成很大的风险和安全性 隐患。我们可以使用一定的解决方式,如在每个目录访问时10 / 112 有 ,或者严格设定 WEB 服务器的目录访问权限,将这种隐患降低到最小程度。 注:每个目录访问时有目的:通过首页中的登陆验证功能进行访问权限控制。 五、 web安全测试的 checklist 1. 不登录系统,直接输入登录后的页面的 url是否可以访问 2. 不登录系统,直接输入下载文件的 url 是否可以下载,如输入 http:/url/download?name=file 是否可 以下载文件 file 3. 退出登录后按后退按钮能否访问之前的页面 4. ID/密码验证方式中能否使用简单密码。如密码标准为 6位以上,字母和数字混合,不能 包含 ID, 连续的字母或数字不能超过 n位 11 / 112 5. 重要信息在输入或查询时是否用明文显示;在浏览器地址栏 里输入命令 javascrpt:alert() 时是否有重要信息;在html源码中能否看到重要信 息 6. 手动更改 URL中的参数值能否访问没有权限访问的页面。如普通用户对应的 url中的参数为 l=e, 高级用户对应的 url 中的参数为 l=s, 以普通用户的身份登录系统后将 url中的参数 e改为 s 来访问 本没有权限访问的页面 7. url里不可修改的参数是否可以被修改 , 浏览器缓存:认证和会话数据不应该作为 GET的一部分来 发送,应该使用 POST 8. 上传与服务器端语言一样扩展名的文件或 exe 等可执行12 / 112 文件后,确认在服务器 端是否可直接运行 9. 注册用户时是否可以以 -, or 1=1 -等做为用户名 10. 传送给服务器的参数中包含特殊字符时是否可以正常处理 11. 执行新增操作时,在所有的输入框中输入脚本标签后能否保存 12. 在 url中输入下面的地址是否可以下载: http:/url/?file=C:windowssystem32driversetchosts,http:/url/?file=/ etc/passwd 13. 是否对 session 的有效期进行处理 14. 错误信息中是否含有 sql 语句、 sql 错误信息以及 web13 / 112 服务器的绝对路径等 15. ID/密 码验证方式中,同一个账号在不同的机器上不能同时登录 16. ID/密码验证方式中,连续数次输入错误密码后该账户是否被锁定 17. 新增或修改重要信息时是否有自动完成功能, 我们要验证 subject 中应能 escape 掉 “ n” 标识。 ? 因为 “ n” 是新行,如果在 subject中输入 “hello ncc:spamvictim” ,可能会形成以下 Subject: hello cc: spamvictim ? 如果允许用户使用这样的 subject,那他可能会给利用这个缺 14 / 112 陷通过我们的平台给其它用户发送 垃圾邮件。 19. Directory Traversal(目录遍历 ) 如何进行目录遍历测试? 目录遍历产生的原因是:程序中没有过滤用户输入的“./” 和 “./” 之类的目 录跳转符 ,导致恶意 用户可以通过提交目录跳转来遍历服务器上的任意文件。 测试方法:在 URL 中输入一定数量的 “./” 和 “./” ,验证系统是否 ESCAPE 掉了这些目录跳转 符。 如何预防目录遍历? 限制 Web 应用在服务器上的运行 进行严格的输入验证,控制用户输入非法路径 15 / 112 20. exposed error messages(错误信息 ) 如何进行测试? 首先找到一些错误页面,比如 404,或 500 页面。 验证在调试未开通过的情况下,是否给出了友好的错误提示信息比如 “ 你访问的页面不存在 ” 等,而并非曝露一些程序代码。 如何预防? 测试人员在进行需求检查时,应该对出错信息进行详 细查,比如是否给出了出错信息,是否给出了正确的出错信息。 六、 跨站点脚本攻击测试要点 1.确定站点及其功能 - 与开发人员和 PM 交流 绘制一些简单的数据流图表,对站点上的页面及其功能进行描述。此时,可以安排一些与开发人员 16 / 112 和项目经理的会议来建立威胁模型。在会议上尽可能对应用程序进行深入探讨。站点公开了 Web 服务吗?是否有身份验证表单?有留言板吗?有用户设置页面吗?确保列出了所有这些页面 2. 找出并列出所有由用户提供输入的点 对站点地图进行进一步细化。我通常会为此创建一个电子表格。对于每个页面,列出所有查询字符串 参数、 cookie 值、自定义 HTTP 标头、 POST 数据值和以其他形式传递的用户输入。不要忘记搜索 Web 服务和类似的 SOAP 请求,并找出所有允许用户输入的字段。 分别列出每个输入参数,因为下面需要独立测试每个参数。这可能是最重要的一个步骤!如果阅读下 面的电子表格,您会看到我已经在示例站点中找出了一大堆这样的东西。如 forwardURL 和 lang 这 样的查询字符串。如 name、 password、 msgBody、 msgTitle 17 / 112 和这样的 POST 数据,甚至某些 Cookie 值。所有这些都是我们感兴趣的重要测试内容 3. 认真思考 并列出测试用例 4. 开始测试并注意输出结果 在查找漏洞的过程中,最重要的部分并不是您是否找到了漏洞。而是您是否真正知道究竟发生了哪些 事情。对于 XSS,只需检查 HTML 输出并看看您输入的内容在什么地方。它在一个 HREF 标记中吗?是否在 IFRAME 标记中?它在 CLSID 标记中吗?在 IMG SRC 中吗?某些 Flash 内容的 PARAM NAME 是怎样的? 我会检查所有这些情况,如果您对所输入内容的目的十分了解,可以调整您的测试来找出问题。这意味着您可能需要添加一个额外的封闭括号 “” 来让某个标记变得完整,或者添加一个双引号来关闭标记内的 一个元素。或者,您可能需要使用 URL 或 HTML 来编码您的字符,例如将双引号变为 %22 或 。 18 / 112 5. 这个站点看来防范比较严密。现在该怎么办呢? 那么,也许您的简单测试用例 alert(?hi?) 并不能产生期望中的警告对话框。仔细想 想这个问题并在可能的情况下与开发人员进行交流。也许他们对输入中的尖括号、单引号或圆括号进行了过滤。也许他们会过滤 “scrpt” 这个词。重新研究为何输入会产生这样的输出,并理解每个值 2) 允许的字符集 3) 最小和最大的长度 4) 是否允许空输入 5) 参数是否是必须的 6) 重复是否允许 7) 数值范围 19 / 112 8) 特定的值 9) 特定的模式 2 用户名和密码 1) 检测接口程序连接登录时,是否需要输入相应的用户 2) 是否设置密码最小长度 3) 用户名和密码中是否可以有空格或回车? 4) 是否允许密码和用户名一致 5) 防恶意注册:可否用自动填表工具自动注册用户? 6) 遗忘密码处理 7) 有无缺省的超级用户 ? 8) 有无超级密码 ? 20 / 112 9) 是否有校验码? 10) 密码错误次数有无限制? 11) 大小写敏感? 12) 口令不允许以明码显示在输出设备上 13) 强制修改的时间间隔限制 14) 口令的唯一性限制 15) 口令过期失效后,是否可以不登陆而直接浏览某个页面 16) 哪些页面或者文件需要登录后才能访问 /下载 17) cookie中或隐藏变量中是否含有用户名、密码、 userid等关键信息 3 直接输入需要权限的网页地址可以访问 避免研发只是简单的在客户端不显示权限高的功能项 举例 Bug: 21 / 112 1) 没有登录或注销登录后,直接输入登录后才能查看的页面的网址,能直接打开页面; 2) 注销后,点浏览器上的后退,可以进行操作。 3) 正常登录后,直接输入自己没有权限查看的页面的网址,可以打开页面。 4) 通过 Http 抓包的方式获取 Http 请求信息包经改装后重新发送 5) 从权限低的页面可以退回到高的页面 4 上传文件没有限制 1) 上传文件还要有大小的限制。 2) 上传木马病毒等 3) 上传文件最好要有格式的限制; 22 / 112 5 不安全的存储 1) 在页面输入密码,页面应显示 “*” ; 2) 数据库中存的密码应经过加密; 3) 地址栏中不可以看到刚才填写的密码; 4) 右键查看源文件不能看见刚才输入的密码; 5) 帐号列表:系统不应该允许用户浏览到网站所有的帐号,如果必须要一个用户列表,推荐使用某种形式的假名来指向实际的帐号 6 操作时间的失效性 1) 检测系统是否支持操作失效时间的配置,同时达到所配置的时间内没有对界面进行任何操作时,检测系统是否会将用户自动失效,需要重新登录系统。 2) 支持操作失效时间的配置。 23 / 112 3) 支持当用户在所配置的时间内没有对界面进行任何操作则该应用自动失效。 如,用户登陆后在一定时间内没有点击任何页面,是否需要重新登陆才能正常使用。 7 日志完整性 1) 检测系统运行时是否会记录完整的日志 如进行详单查询,检测系统是否会记录相应的操作员、操作时间、系统状态、操作事项、 IP地址等。 2) 检测对系统关键数据进行增加、修改和删除时,系统是否会记录相应的修改时间、操作人员和修改前的数据记录 系统服务器安全检查点 1)检查关闭不必要的服务 2)是否建立安全账号策略和安全日志 24 / 112 3)是否已设置安 全的 IIS,删除不必要的 IIS 组件和进行IIS安全配置 4) Web 站点目录的访问权限是否过大 5)服务器系统补丁是否打上,是否存在系统漏洞 6)扫描检测木马 数据库安全检查点 1.系统数据是否机密 1)尽量不要使用 Sa账户,密码够复杂 2)严格控制数据库用户的权限,不要轻易给用户直接的查询、更改、插入、删除权限。可以只给用户以访问视图和执行存储过程的权限 3)数据库的帐号,密码是不是直接写在配置文件里而没有进行加密 25 / 112 2.系统数据的完整性 3.系统数据可管理性 4.系统数据的独立性 5.系统数据可备份和恢复能力 1)服务器突然断电,这可能导致配置文件的错误导致无法访问或者数据的丢失 ; 2)重做日志发生损坏,这可能导致数据库管理员无法把数据恢复到故障发生时的点 ; 3)硬盘发生故障而导致数据丢失,这主要是要测试备份文件异地存放的有效性 ; 4)数据批量更新的错误处理,这主要是数据库备份测试数据库管理员在进行批量更新之前是否有先对数据库进行备份的习惯,等等。 支付宝接口检查点 26 / 112 1. 支付的接口 2. 支付的入口 3. 与各个银行的数据接口安全 4. 与支付宝的接口 网页安全测试工具 IBM AppScan IBM AppScan 该产品是一个领先的 Web 应用安全测试工具,曾以 WatchfireAppScan 的名称享誉业界。 Rational AppScan可自动化 Web 应用的安全漏洞评估工作,能扫描和检测所有常见的 Web 应用安全漏洞,例如 SQL 注入、跨站点脚本攻击、缓冲区溢出及最新的 Flash/Flex 应用及 Web 应用曝露等方面安全漏洞的扫描。 HttpWatch 27 / 112 HttpWatch 是强大的网页数据分析工具 .集成在 Internet Explorer工具栏 .包括网页摘要 .Cookies管理 .缓存管理 .消息头发送 /接受 .字符查询 .POST 数据和目录管理功能 .报告输出 HttpWatch 是一款能够收集并显示 页页深层信息的软件。它不用代理服务器或一些复杂的网络监控工具,就能够在显示网页同时显示网页请求和回应的日志信息。甚至可以显示浏览器缓存和 IE 之间的交换信息。集成在 Internet Explorer工具栏。 Acunetix Web Vulnerability Acunetix Web Vulnerability 是通过缓慢运行该软件和运行诸如交叉站点脚本和 SQL涌入这样的流行的攻击方式来测试网站的安全性。在黑客攻击之前识别出购物车、窗体、安全区域和网络应用软件的攻击弱点。通过构建 HTTP 和 HTTPS请求扩展攻击并且分析响应。创建或者定制弱点攻击。支持所有主要的网络技术。 1.它将会扫描整个网站,它通过跟踪站点上的所有链接和而实现扫描。然后 WVS就会映射出站点的结构并显示每个文件的细节信息。 28 / 112 2.在上述的发现阶段或扫描过程之后, WVS 就会自动地对所发现的每一个页面发动一系列的漏洞攻击,这实质上是模拟一个黑客的攻击过程。 WVS 分析每一个页面中可以输入数据的地方,进而尝试所有的输入组合。这是一个自动扫描阶段。 3.在它发现漏洞之后, WVS就会在 “Alerts Node” 中报告这些漏洞。每一个警告都包含着漏洞信息和如何修复漏洞的建议。 4.在一次扫描完成之后,它会将结果保存为文件以备日后分析以及与以前的扫描相比较。使用报告工具,就可以创建一个专业的报告来总结这次扫描。 WVS自动地检查下面的漏洞和内容: ?版本检查,包括易受攻击的 Web 服务器,易受攻击的 Web服务器技术 ?CGI测试,包括检查 Web服务器的问题,主要是决定在服务器上是否启用了危险的 HTTP 方法,例如PUT, TRACE, DELETE 等等。 ?参数操纵:主要包括跨站脚 本攻击、 SQL 注入攻击、代码执行、目录 遍历攻击、文件入侵、脚本源代码泄漏、 CRLF注入、 PHP代29 / 112 码注入、 XPath注入、 LDAP注入、 Cookie操纵、 URL重定向、应用程序错误消息等。 ?多请求参数操纵:主要是 Blind SQL / XPath注入攻击 ?文件检查:检查备份文件或目录,查找常见的文件,以及 URL 中的跨站脚本攻击,还要检查脚本错误等。 ?目录检查,主要查看常见的文件,发现敏感的文件和目录,发现路径中的跨站脚本攻击等。 ?Web 应用程序:检查特定 Web 应用程序的已知漏洞的大型数据库,例如论坛、 Web 入口、 CMS 系统、电子商务应用程序和 PHP库等。 ?文 本搜索:目录列表、源代码揭示、检查电子邮件地址、微软 Office 中可能的敏感信息、错误消息等。 ?GHDB Google 攻击数据库:可以检查数据库中 1400多条 GHDB搜索项目。 ?Web 服务:主要是参数处理,其中包括 SQL 注入/Blind SQL 注入、代码执行、 XPath 注入、应用程序错误消息等。使用该软件所提供的手动工具,还可以执行其它的漏洞测试,包括输入合法检查、验证攻击、缓冲区溢出等。 信息安全入侵测试 30 / 112 1 上传漏洞 利用上传漏洞可以直接得到网页管理员权限 ,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。 “ 上传漏洞 ”入侵是目前对网站最广泛的入侵方法。 90%的具有上传页面的网站,都存在上传漏洞。网站有上传页面,如果页面对上传文件扩展名过滤不严,导致黑客能直接上传带木马的文件,直接上传后即拥有网站的管理员控制权。 2 暴库 暴库,就是通过一些技术手段或者程序漏洞得到数据库的地址,并将数据非法下载到本地。比如一个站的地址为/?boardID=7&ID=161,就可以把 com/dispbbs 中间的 /换成 %5c,如果有漏洞直接得到数据库的绝对路径。用迅雷什么的下载下来就可以了。还有种方法就是利用默认的数据库路径 /后面加上 如果没有修改默认的数据库路径也可以得到数据库的路径。 3 注入漏洞 31 / 112 注入漏洞是利用某些输入或者资料输入特性以导入某些资料或者代码,造成目标系统操作崩溃的电脑漏洞,通常这些漏洞安全隐患是由不充分的输入确认及其他种种因素造成的。我们需要使用到以下几种方式进行测试: SQL 攻击,简称注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的字符串之中注入 SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的 SQL指令而运行,因此遭到破坏。 测试方法: 某个网站的登录验证的 SQL查询代码为 strSQL = SELECT * FROM users WHERE (name = + userName + ) and (pw = + passWord +); 恶意填入 userName = OR 1=1; 与 32 / 112 passWord = OR 1=1; 时,将导致原本的 SQL字符串被填为 strSQL = SELECT * FROM users WHERE (name = OR 1=1) and (pw = OR 1=1); 也就是实际上运行的 SQL 命令会变成下面这样的 strSQL = SELECT * FROM users; 因此达到无帐号密码,亦可登录网站。 跨网站指令码是一种网站应用程式的安全漏洞攻击,允许恶意使用者将程式码注入到网页上,其他使用者在观看网页时就会受到影响。这类攻击通常包含了 HTML 以及使用者端脚本语言。 测试方法: 通常有一些方式可以测试网站是否有正确处理特殊字符: alert() 33 / 112 =alert() alert() alert(vulnerable) %3Cscript%3Ealert(XSS)%3C/script%3E alert(XSS) 使用者可做一个网页,试着用 JavaScript 把当成参数丢过去,然后再把它记录下来,这即是偷 cookie 。 XSS攻击方法有: 偷 cookie 。 利用 iframe. 或 frame. 存取管理页面或后台页面。 34 / 112 利用 XMLHttpRequest 存取管理页面或后台页面。 4 旁注 我们入侵某站时可能这个站坚固的无懈可击,我们可以找下和这个站同一服务器的站点,然后在利用这个站点用提权,嗅探等方法来入侵我们要入侵的站点。 WEB测试小结 一、输入框 1、字符型输入框: 字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符 “ ! #¥ %?&*? ” 特别要注意单引号和 &符号。禁止直接输入特殊字符时,使用 “ 粘贴、拷贝 ” 功能尝试输入。 长度检查:最小长度、最大长度、最小长度 -1、最大 长度 +1、输入超工字符比如把整个文章拷贝过去。 35 / 112 空格检查:输入的字符间有空格、字符前有空格、字符后有空格、字符前后有空格 多行文本框输入:允许回车换行、保存后再显示能够保存输入的格式、仅输入回车换行,检查能否正确保存、 安 全 性 检 查 : 输 入 特 殊 字 符 串 、 输 入 脚 本 函 数(alert(abc)、 (abc)、 hello) 2、数值型输入框: 边界值:最大值、最小值、最大值 +1、最小值 -1 位数:最小位数、最大位数、最小位数 -1最大位数 +1、输入超长值、输入整数 异常值、特殊字符:输入空白、空格或 !#$%/?;:-=等可能导致系统错误的字符、禁止直接输入特殊字符时,尝试使用粘贴拷贝查看是否能正常提交、 word中的特殊功能,通过剪贴板拷贝到输入框,分页符,分节符类似公式的上下标等、数值的特殊符号如 , , +, -等、 36 / 112 输入负整数、负小数、分数、输入字母或汉字、小数、首位为 0 的数字如 01、 02、科学计数法是否支持、全角数字与半角数字、数字与字母混合、 16进制, 8 进制数值、货币型输入、 安全性检查:不能直接输入就 copy 3、日期型输入框: 合法性检查: (输入 0 日、 1 日、 32 日 )、月输入 1、 3、 5、7、 8、 10、 12、日输入 31、月输入 4、 6、 9、 11、日输入 3031、输入非闰年,月输入 2,日期输入 28、 29、输入闰年,月输入 2、日期输入 29、 30、月输入 0、 1、12、 13 (2)异常值、特殊字符:输入空白或 NULL、输入 ! #¥ %?&*等可能导致系统错误的字符 安全性检查:不能直接输入,就 copy,是否数据检验出错? 4、信息重复 :在一些需要命名 ,且名字应该唯一的信息输入37 / 112 重复的名字或 ID,看系统有 没有处理 ,会否报错 ,重名包括是否区分大小写 ,以及在输入内容的前后输入空格 ,系统是否作出正确处理 . 二、搜索功能 若查询条件为输入框,则参考输入框对应类型的测试方法 1、功能实现: 如果支持模糊查询,搜索名称中任意一个字符是否能搜索到 比较长的名称是否能查到 输入系统中不存在的与之匹配的条件 用户进行查询操作时,一般情况是不进行查询条件的清空,除非需求特殊说明。 2、组合测试: 不同查询条件之间来回选择,是否出现页面错误 38 / 112 测试多个查询条件时,要注意查询条件的组合测试,可能不同组合的测试会报错。 三、添加、修改功能 1、特殊键:是否支持 Tab 键 是否支持回车键 2、提示信息:不符合要求的地方是否有错误提示 3、唯一性:字段唯一的,是否可以重复添加,添加后是否能修改为已存在的字段 4、数据 正确性: 对编辑页的每个编辑项进行修改,点击保存,是否可以保存成功,检查想关联的数据是否得到更新。 进行必填项检查 是否能够连续添加 39 / 112 在编辑的时候,注意编辑项的长度限制,有时在添加的时候有,在编辑的时候却没有 对于有图片上传功能的编辑框,若不上传图片,查看编辑页面时是否显示有默认的图片,若上传图片,查看是否显示为上传图片 修改后增加数据后,特别要注意查询页面的数据是否及时更新,特别是在首页时要注意数据的更新。 提交数据时,连续多次点击,查看系统会不会连续增加几条相同的数据或报 错。 若结果列表中没有记录或者没选择某条记录,点击修改按钮,系统会抛异常。 四、删除功能 1、特殊键:是否支持 Tab 键 是否支持回车键 2、提示信息:不选择任何信息,直接点击删除按钮,是否有提示删除某条信息时,应该有确认提示 40 / 112 3、数据 实现:是否能连续删除多个产品当只有一条数据时,是否可以删除成功 删除一条数据后,是否可以添加相同的数据如系统支持批量 删除,注意删除的信息是否正确 如有全选,注意是否把所有的数据删除删除数据时,要注意相应查询页面的数据是否及时更新 如删除的数据与其他业务数据关联,要注意其关联性如果结果列表中没有记录或没有选择任何一条记录,点击删除按钮系统会报错。 如:某一功能模块具有最基本的增删改查功能,则需要进行以下测试 单项功能测试 增加 增加 增加 增加 删除 增加 删除 增加 增加 修改 删除 41 / 112 修改 修改 修改 修改 增加 修改 删除 修改 删除 增加 删除 删除 删除 五、注册、登陆模块 1、注册功能: 注册时,设置密码为特殊版本号,检查登录时是否会报错 注册成功后,页面应该以登陆状态跳转到首页或指定页面 在注册信息中删除已输入的信息,检查是否可以注册成功。 2、 登陆 功能: 42 / 112 输入正确的用户名和正确的密码 输入正确的用户名和错误的密码 输入错误的用户名和正确的密码 输入错误的用户名和错误的密码 不输入用户名和密码 只输入用户名,密码为空 用户名为空,只输入密码 输入正确的用户名和密码,但是不区分大小写 用户名和密码包括特殊字符 用户名和密码输入超长值 已删除的用户名和密码 43 / 112 登录时,当页面刷新或重新输入数据时,验证码是否更新 六、上传图片测试 1、功能 实现: 文件类型正确、大小合适 文件类型正确,大小不合适 文件类型错误,大小合适 文件类型和大小都合适,上传一个正在使用中的图片 文件类型大小都合适,手动输入存在的图片地址来上传 文件类型和大 小都合适,输入不存在的图片地址来上传 文件类型和大小都合适,输入图片名称来上传 不选择文件直接点击上传,查看是否给出提示 44 / 112 连续多次选择不同的文件,查看是否上传最后一次选择 的文件 七、查询结果列表 1、功能 实现: 列表、列宽是否合理 列表数据太宽有没有提供横向滚动 列表的列名有没有与内容对应 列表的 每列的列名是否描述的清晰 列表是否把不必要的列都显示出来 点击某列进行排序,是否会报错 双击或单击某列信息,是否会报错 八、返回键检查 45 / 112 1、一条已经成功提交的记录,返回后再提交,是否做了处理 2、检查多次使用返回键的情况,在有返回键的地方,返回到原来的页面多次,查看是否会出错 九、回车键检查 1、在输入结果后,直接按回车键,看系统如何处理,是否会报错 十、刷新键检查 1、在 Web 系统中,使用刷新键,看系统如何处理,是否会报错 十一、直接 URL链接检查 1、在 Web 系统中,在地址栏直接输入各个功能页面的 URL地址,看系统如何处理,是否能够直接链接查看,是否有权限控制,是否直接执行,并返回相应结果页; 46 / 112 十二、界面和易用性测试 1、风格、样式、颜色是否协调 2、界面布局是否整齐、协调 4、操作是否符合人们的常规习惯 5、提示 界面是否符合规范 6、界面中各个控件是否对齐 7、日期控件是否可编辑 8、日期控件的长度是否合理,以修改时可以把时间全部显示出来为准 9、查询结果列表列宽是否合理、标签描述是否合理 10、查询结果列表太宽没有横向滚动提示 47 / 112 11、对于信息比较长的文本,文本框有没有提供自动竖直滚动条 12、数据录入控件是否方便 13、有没有支持 Tab键,键的顺序要有条理,不乱跳 14、有没有提供相关的热键 15、控件的提示语描述是否正确 16、模块调用是否统一,相同的模块是否调用同一个界面 17、用滚动条移动页面时,页面的控件是否显示正常 18、日期的正确格式应该是 XXXX-XX-XX 或 XXXX-XX-XX XX:XX:XX 19、页面是否有多余按钮或标签 20、窗口标题或图标是否与菜单栏的统一 48 / 112 21、窗口的最大化、最小化是否能正确切换 22、对于正常的功能,用户可以不必阅读用户手册就能使用 23、执行风险操作时,有确认、删除等提示吗 24、操作顺序是否合理 25、正确性检查:检查页面上的 form, button, table, header, footer,提示信息,还有其他文字拼写,句子的语法等是否正确。 26、系统应该在用户执行错误的操作之前提出警告,提示信息 . 27、页面分辨率检查,在各种分辨率浏览系统检查系统界面友好性。 28、合理性检查:做 delete, update, add, cancel, back等操作后,查看信息回到的页面是否合理。 29、检查本地化是否通过:英文版不应该有中文信息,英文49 / 112 翻译准确,专业。 十三、兼容性测试 兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容 性, 包括操作系统兼容和应用软件兼容,可能还包括硬件兼容 比如涉及到 ajax、 jquery、 javascript 等技术的,都要考虑到不同浏览器下的兼容性问题。 十四、链接 测试 主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。 可以使用特定的工具如 XENU来进行链接测试。 1 导航测试 导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同50 / 112 的连接页面之间。通过考虑下列问题,可以决定一个 Web 应用系统是否易于导航:导航是否直观? Web 系统的主要部分是否可通过主页存取? Web 系统是否需要站点地图、搜索引擎或其他的导航帮助? 在一个页面上放太多的信息往往起到与预期相反的效果。Web 应用系统的用户趋向于目的驱动,很快地扫描一个 Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉 Web应用系统的结构,因此, Web 应用系统导航帮助要尽可能地准确。 导航的另一个重要方面是 Web应用系统的页面结构、导航、菜单、连接的风格是否一 致。确保用户凭直觉就知道 Web 应用系统里面是否还有内容,内容在什么地方。 Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。 2 图形测试 一 软件安全的基本概念 51 / 112 安全的基本概念: 1. 计算环境内的软件安全 2. 安全是相对的,安全是一种平衡 【软件的概念 与一系统有关的程序、步骤和有关文件编制的完整集合。特指特定类型的计算机所使用的程序的总称,连同与计算机或程序相关的资料,例如手册、图表和操作指令。 【什么是信息 所谓信息,就是客观世界中各种事物的变化和特征的最新反映,是客观事物之间联系的表征,也是客观事物状态经过传递后的再现。 【什么是信息安全 ? 一类是指具体的信息技术系统的安全。 52 / 112 ? 而另一类则是指某一特定信息体系的安全。 ? 但是有人认为这两种定义失之于过窄,而应定义为:一个国家的社会信息化状态不 受外来的威胁与侵害,一个国家的信息技术体系不受外来的威 胁与侵害。 【信息安全的 5个基本属性 安全性 可用性 保密性 可控性 可靠性 【软件的安全性 ? 软件安全性是指软件不被恶意使用或者攻击进而造成用户信息资产损失的属性。 ? 软件安全:软件在恶意攻击下能够正确地完成其功能。 【软件安全的属性 3 个 ? 软件的可信性,软件的完整性,软件的可用性, 53 / 112 【软件安全研究范畴 ? 软件安全研究:如何设计、构造、验证和维护软件以保证其是安全的。 ? 包括:改进和实现软件安全的架构或结构 改进和实现软件安全的工具 改进或实现软件安全的方法 【漏洞和脆弱性 安全漏洞:计算机系统具有的某种可能被入侵者恶意利用的属性; 有时安全漏洞也成为脆弱性;漏洞是软件的属性 【漏洞的本质 漏洞是系统的一组特性,恶意的主体能够利用这组特性,通过已授权的手段和方式获取对资源的未经授权访问,或者对54 / 112 系统造成损害。 【安全的的代码 vs 安全性的代码 安全的代码:能够抵抗恶意攻击的代码;安全的代码同时也是健壮的代码; 安全性代码:实现安全功能的代码; 二 典型的安全问题及分析 【安全问题来源 安全问题的根本来源: 1漏洞; 2攻击者; 3 软件存在的攻击路径 -攻击面问题; 【产生漏洞的原因 软件或协议设计时的瑕疵 软件或协议实现中的弱点 软件本身的瑕疵 系统和网络的错误配置 【意外行为和缺陷 55 / 112 ? 意外行为:也称程序安全缺陷,是由于程序脆弱性引 起的不适当的程序行为。 ? 缺陷:缺陷可以是 故障,或者失效 ? 程序安全缺陷可能来源于任何种类的软件错误:无意或疏忽的,故意或有意 【缺陷类型 有意的缺陷恶意的非恶意的确认错误域的错误顺序化和混淆现象不完全的身份识 别和认证边界条件违反其它可利用的逻辑错误 【漏洞的两种类型 ? 设计漏洞:设计错误,往往发现于软件的安全功能特性中。 ? 实现漏洞:来源于软件实际编码中的安全缺陷。 56 / 112 【常见安全设计问题 1 缓冲区溢出 2未校验输入 3资源竞争 4访问控制问题 5认证、授权、加密缺陷 【 Owasp top 10 1 注入 2 失效的身份认证 3 跨站脚本 4 不安全的直接对象引用 5 安全配置错误 6 敏感信息泄露 7 功能级访问控制缺失 8跨站请求伪造 9 使用含有已知漏洞的组件 10 未验证的重定向和转发 三 安全工程 【 Sse-cmm 5级 能力级别 非正式执行 公共特征:执行基本实施 能力级别 计划与跟踪 57 / 112 公共特征: 1计划执行 2 规范化执行 3验证执行 4 跟踪执行 能力级别 充分定义 公共特征: 1 定义标准过程 2 执行已定义的过程 3 协调安全实施 能力级别 定量控制 公共特征: 1建立可测的质量目标 2 客观地管理过程的执行 能力级别 连续改进 公共特征: 1改进组织能力 2改进过程的有效性 【安全工程的三个基本过程 安全工程分三个基本过程:风险、工程和保证 风险过程是要确定产品或者系统的危险性,并对这些危险 性进行优 58 / 112 先级排序 工程过程是针对面临的危险性,安全工程过程与相关工程过程一起 来确定并实施解决方案 保证过程是建立起对解决方案的信任,并把这种信任传达给顾客 【受攻击面分析 ? 受攻击面分析:枚举所有接口、协议以及可执行代码的过 程。 ? 软件的受攻击面:代码 接口 服务 协议 其他 【隐私影响分级 3 级 ? 隐私分级 1:满足以下任何一项,具有最高隐私分59 / 112 级 该软件储存 PII 或传输 PII 该软件目标是针对儿童或对儿童产生吸引力,或包含任何可以了解年 龄的用户体验 该软件不间断监控用户行为 该软件安装新的软件或改变用户文件类型的关联 ? 隐私分级 2:该软件传输匿名数据给开发人员或第三方 ? 隐私分级 3:如果软件不包含隐私分级 1、 2 中任何一种行为,则被划分为隐 私分级 3 四 测试 60 / 112 【安全漏洞分级 DREAD模型:进行威胁程度级别分析的有效技术。 ? DREAD: 1 潜在的破坏 2 再现性 3 可利用性 4 受影响用户 5 可发现性 TRAP模型: ? 基于可利用性提出。 ? TRAP 包括因素: 1 时间 2 可靠性 /再现性 3 访问 4定位 【安全的常规测试方法 1. 基于风险的安全测试 3 个步骤: 1 信息搜集 2威胁建模 3可用性分析 在一个威胁路径上的 9 个高风险活动: 1 数据解析 2 文件访问 3 数据库访问 4 生成子进程 5 身份鉴别 6 授权 61 / 112 7 同步或会话管理 8处理私密数据 9网络访问 2. 白盒,黑盒,灰盒测试 白盒测试:也称明盒测试、开盒测试或信息充分测试。白盒测 试可以看作是内部的攻击。测试人员可以访问源代码和设计文档,可以进行威胁建模或逐行的代码检查。白盒测试是找出漏洞最为有效的方法。 黑盒测试:以局外人的身份对系统进行攻击,使用工具检查系统的攻击面,并探查系统的内部信息。黑盒测试是白盒测试的补充。方向工程团队利用黑盒测试验证隐蔽式安全方法的强度。 灰盒测试:组合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气割整套转让合同范本
- 木护栏维修合同范本
- 新民居买卖协议合同
- 水利工程投资合同范本
- 亚马逊解协议书模板
- 买粽子购销合同范本
- 教育项目加盟协议书
- 气瓶维修回收合同范本
- 交流安全管理协议书
- 2026-2031年中国三氯化磷行业市场投资前景预测研究报告
- 病人外带药物-药品知情同意书
- 【胸部】胸部病变的CT诊断课件
- 高速公路雾天、冰雪路面应急处理预案(4篇)
- 浙教版七年级上册英语单词表
- 第10课《马克思主义的诞生和国际工人运动的发展》中职高一下学期高教版(2023)世界历史全一册
- 血管搭桥手术中的术中监测
- 课间游戏课件教学课件
- 相关方需求和期望表
- 设备安装专项施工方案
- 幕墙作业安全技术交底
- 雾化吸入知识宣教主题班会课件
评论
0/150
提交评论