基于WEB的应用程序安全测试技术
- 格式:pdf
- 大小:367.62 KB
- 文档页数:7
网络安全之web渗透测试实战随着互联网的发展和普及,在线交流、电子商务和云计算等领域得到了广泛应用。
然而,随之而来的是网络安全威胁的增加,不法分子利用网络漏洞进行非法活动的现象时有发生。
为了保护网络安全,Web渗透测试实战成为了解决网络安全问题的一种重要手段。
本文将介绍Web渗透测试的定义及实施步骤,并通过相关案例探讨其实战策略。
一、Web渗透测试的定义Web渗透测试是指模拟黑客攻击手段,对Web应用系统中可能存在的漏洞进行测试和评估的过程,以便发现和修复潜在的安全问题。
它的主要目的是通过模拟攻击来识别和量化Web应用程序中的安全弱点,以确保系统的安全性。
二、Web渗透测试实施步骤1. 信息收集:通过网络搜索、端口扫描等手段,获取目标Web应用程序的相关信息,包括IP地址、域名、服务器类型等。
2. 漏洞扫描:利用专业的渗透测试工具,如Nessus、Metasploit等,对目标系统进行全面扫描,检测可能存在的漏洞和安全威胁。
3. 漏洞利用:根据扫描结果,选择合适的漏洞进行攻击,获取系统权限,并获取敏感信息或者进一步深入渗透。
4. 提权与保持访问:如果成功获取系统权限,攻击者将利用提权技术和后门等手段,保持对目标系统的持续访问和控制权。
5. 数据挖掘与后期分析:在攻击过程中,攻击者将尽可能地获取敏感数据,并进行后期分析,以寻找更多的攻击目标或者建立攻击报告。
三、Web渗透测试实战策略1. 选择合适的渗透测试工具:根据实际需求,选择适合的渗透测试工具。
常用的工具有Burp Suite、OWASP ZAP等,它们可以帮助完成基本的信息收集、漏洞扫描和漏洞利用等任务。
2. 模拟真实攻击场景:在进行渗透测试时,应该尽量模拟真实的攻击场景,例如模拟黑客通过发送恶意代码或者利用社交工程等方式获取系统权限。
3. 注意法律和道德约束:渗透测试是一项专业工作,需要严格遵守法律和道德规范。
在进行测试前,应征得相关授权,并与被测试系统的所有者达成一致。
Web安全测试Web安全测试是指对Web应用程序进行安全性检测和评估的过程,旨在发现潜在的安全漏洞和弱点,以保护Web应用程序免受恶意攻击和数据泄露。
在当今数字化时代,Web安全测试变得愈发重要,因为Web应用程序承载了大量的敏感数据和个人信息,一旦遭受攻击,将会给个人和组织带来严重的损失。
因此,进行Web安全测试是保障信息安全的重要举措。
首先,Web安全测试需要从多个角度入手,包括但不限于网络安全、应用安全、数据库安全、身份验证和授权等方面。
在进行测试时,需要考虑常见的安全漏洞,如跨站脚本攻击(XSS)、SQL注入、跨站请求伪造(CSRF)等。
通过模拟黑客攻击的方式,测试人员可以发现并修复这些漏洞,以提高Web应用程序的安全性。
其次,Web安全测试需要采用多种测试方法和工具。
常见的测试方法包括静态测试和动态测试。
静态测试是指在不执行代码的情况下对Web应用程序进行分析,以发现潜在的安全问题。
而动态测试则是在应用程序运行时进行测试,以模拟真实环境中的攻击行为。
此外,还可以利用自动化测试工具,如Burp Suite、Nessus、OpenVAS等,来提高测试效率和发现潜在漏洞。
另外,Web安全测试需要持续进行,而不是一次性的工作。
随着Web应用程序的不断更新和演变,新的安全漏洞也会不断出现。
因此,定期进行安全测试是至关重要的。
同时,及时修复发现的安全漏洞也是保障Web应用程序安全的重要步骤。
最后,Web安全测试需要全员参与,而不仅仅是测试人员的责任。
开发人员、运维人员、安全团队等都应该意识到安全测试的重要性,并积极参与到安全测试的工作中。
只有全员共同努力,才能够有效地保护Web应用程序免受攻击。
总之,Web安全测试是一项复杂而又必不可少的工作。
通过采用多种测试方法和工具,持续进行安全测试,并让全员参与其中,才能够有效地保障Web应用程序的安全。
希望各个组织和个人都能够重视Web安全测试,共同维护一个安全可靠的网络环境。
Web应用程序渗透测试Web应用程序渗透测试是一种评估和检测Web应用程序的安全性的方法。
通过摹拟攻击者的行为,渗透测试可以匡助发现潜在的漏洞和弱点,并提供相应的建议和解决方案来增强应用程序的安全性。
本文将详细介绍Web应用程序渗透测试的步骤和技术。
1. 信息采集在进行Web应用程序渗透测试之前,首先需要进行信息采集。
这包括采集目标应用程序的URL、IP地址、域名等基本信息,以及应用程序的功能、架构、技术栈等更详细的信息。
此外,还可以使用各种开放源代码情报(OSINT)工具和技术来获取关于目标应用程序的更多信息,如域名注册信息、子域名、目录结构等。
2. 漏洞扫描漏洞扫描是Web应用程序渗透测试的重要步骤之一。
它使用自动化工具来扫描目标应用程序,寻觅常见的漏洞和弱点。
这些漏洞可能包括跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、SQL注入、文件包含、命令注入等。
常用的漏洞扫描工具包括Nessus、Nmap、OpenVAS等。
3. 手动测试除了自动化工具,手动测试也是Web应用程序渗透测试的重要组成部份。
手动测试可以匡助发现一些自动化工具无法检测到的漏洞和弱点。
手动测试的方法包括黑盒测试和白盒测试。
黑盒测试是在没有任何关于应用程序内部结构和代码的情况下进行的测试。
测试人员将摹拟攻击者的行为,通过输入恶意数据、尝试绕过验证机制等方式来测试应用程序的安全性。
白盒测试是在了解应用程序内部结构和代码的情况下进行的测试。
测试人员可以通过代码审查、逆向工程等方式来发现潜在的漏洞和弱点。
4. 渗透攻击在对目标应用程序进行了充分的测试之后,测试人员可以尝试进行真正的渗透攻击。
这可以匡助测试人员评估应用程序的安全性,并发现可能存在的漏洞和弱点。
渗透攻击的方法包括尝试破解密码、尝试绕过身份验证、尝试上传恶意文件等。
5. 报告编写完成渗透测试后,测试人员需要编写详细的报告,记录测试过程、发现的漏洞和弱点以及建议的修复措施。
Web应用安全的检测与防护技术随着互联网的快速发展,Web应用的使用和普及已经成为了我们生活中不可或缺的一部分。
然而,Web应用的安全问题也愈发凸显出来。
为了确保用户信息的安全以及系统的正常运行,Web应用安全的检测与防护技术变得尤为重要。
本文将重点探讨Web应用安全的检测与防护技术,以期提供有效的解决方案。
一、Web应用安全检测技术1. 漏洞扫描漏洞扫描是一种常用的Web应用安全检测技术,用于检测Web应用程序中可能存在的安全漏洞。
常见的漏洞包括SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。
通过自动化工具对Web应用程序进行扫描,可以发现潜在的漏洞并及时修复,提升Web应用的安全性。
2. 安全代码审计安全代码审计是一种手动的安全检测技术,通过对Web应用程序源代码的详细分析,找出可能存在的安全隐患。
开发人员可以通过审计识别不安全的代码逻辑,比如未经授权的访问、缓冲区溢出等,从而及时修复漏洞,提高应用的安全性。
3. 渗透测试渗透测试是一种模拟实际攻击的技术,通过对Web应用程序进行主动的安全测试,发现可能存在的安全风险。
通过模拟黑客攻击的方式,揭示系统的漏洞,并提供修复建议。
渗透测试能够全面评估Web应用系统的安全性,帮助开发人员制定更有效的防护策略。
二、Web应用安全防护技术1. 输入验证输入验证是确保Web应用的一个基本安全措施。
通过对用户输入的数据进行验证和过滤,可以防止恶意用户利用各种攻击手段,比如SQL注入、跨站脚本攻击等。
合理的输入验证以及使用专门的输入验证函数库,能够有效地防止Web应用程序受到常见的安全威胁。
2. 访问控制访问控制是保护Web应用中敏感信息和资源的一种方式。
通过对用户身份、权限进行控制和管理,确保只有授权用户能够访问相应的数据和功能。
权限控制可以在应用层面进行,也可以在服务器端进行设置,提供了有效的安全防护。
3. 安全日志记录与监控安全日志记录与监控是Web应用安全中重要的组成部分。
Web应用开发的安全性技术一.概述随着互联网的发展,Web应用已经成为人们日常生活中不可或缺的一部分。
然而,与此同时,Web应用也面临着越来越多的安全威胁。
与传统的客户端应用不同,Web应用运行在Web服务器上,对外公开接口,容易受到来自互联网的攻击。
因此,Web应用的安全性已经成为Web应用开发的核心问题之一。
本文将介绍Web应用开发的安全性技术。
二. 安全威胁Web应用面临的安全威胁包括但不限于以下几个方面:1. SQL注入SQL注入是一种利用Web应用程序漏洞攻击网站的方法。
黑客通过简单的方法将恶意代码插入到Web应用的SQL语句中,可以获取数据库的全部或部分数据。
2. XSS攻击XSS(Cross-Site Scripting)攻击是指攻击者通过非法的代码注入攻击向量,使得用户在浏览网站时执行攻击代码。
当用户浏览网站时,恶意代码可以窃取用户的Cookie信息、登录凭证和个人隐私。
3. CSRF攻击CSRF(Cross-Site Request Forgery)攻击是指攻击者通过诱骗用户操作,触发用户对指定站点的请求。
如果用户已经通过用户名和密码登录了被攻击的网站,那么攻击者就可以在用户不知情的情况下对用户账号进行各种操作。
三. 应对策略针对不同的安全威胁,Web应用开发需要采用不同的安全技术,下面分别介绍。
1. SQL注入攻击避免SQL注入攻击的最重要方法是不将用户的输入直接拼接到SQL语句中。
可以采取以下措施:(1)使用参数化查询;(2)使用存储过程;(3)限制使用者的访问权限和查询内容;(4)开启WAF(Web应用防火墙)等安全设备。
2. XSS攻击避免XSS攻击的方法包括:(1)对输入进行过滤,去除恶意代码;(2)对输出进行编码,将HTML标签替换为等价字符;(3)设置HttpOnly标记,防止Cookie被恶意获取;(4)使用CSP(Content Security Policy)控制资源加载。
web安全测试方案为了确保网络系统的安全性,保护用户的个人信息和敏感数据,Web安全测试是一项至关重要的工作。
本文将介绍一种Web安全测试方案,用于评估和改进网站的安全性。
一、测试目标和范围Web安全测试的首要目标是发现潜在的漏洞和弱点,以及评估现有安全措施的有效性。
测试的范围包括但不限于以下几个方面:1. 网络架构和配置:测试网络架构和相关配置的安全性。
2. 系统和应用程序:测试各种系统和应用程序中的安全漏洞。
3. 数据库和存储:测试数据库和存储系统中的安全性。
4. 用户验证和访问控制:测试用户验证和访问控制机制的有效性。
5. 防火墙和入侵检测系统:测试防火墙和入侵检测系统是否正常工作。
6. 传输层安全:测试传输层安全协议和机制的可靠性。
二、测试方法和工具在进行Web安全测试时,可以采用以下多种方法和工具:1. 黑盒测试:模拟攻击者的行为,通过对系统进行渗透测试,评估系统的漏洞和弱点。
2. 白盒测试:对系统的内部结构和代码进行审查,检查潜在的安全风险。
3. 网络扫描:使用自动化工具扫描目标系统,识别可能存在的漏洞。
4. 代码审查:仔细审查系统的源代码,发现潜在的安全问题。
5. 社会工程学测试:通过模拟攻击者的社交工程手段,测试用户的安全意识和反应能力。
三、测试阶段和步骤Web安全测试应该按照以下几个阶段进行:1. 确定测试目标和范围:明确测试的目标和范围,并制定测试计划。
2. 收集信息和准备工作:收集与目标系统相关的信息,包括网络架构、应用程序、数据库等。
3. 漏洞扫描和渗透测试:使用合适的工具对系统进行扫描,识别潜在的漏洞,并进行渗透测试。
4. 审查代码和配置:对系统的内部代码和配置文件进行审查,查找可能存在的安全问题。
5. 社会工程学测试:通过向系统用户发送钓鱼邮件、进行电话欺诈等方式,测试用户的反应和安全意识。
6. 报告编写和总结:对测试结果进行整理和总结,并编写测试报告,提供改进建议和安全加固措施。
Web应用安全漏洞检测与防范技术研究随着互联网技术日新月异的发展,Web应用已经成为了人们日常生活中不可或缺的一部分。
越来越多的企业和个人将信息储存在Web应用中,而这种信息的敏感性也越来越高。
然而,随着Web应用安全问题的不断凸显,安全漏洞问题越来越引起人们的关注。
为此,本文将从Web应用安全漏洞的检测和防范角度出发,对相关技术进行分析,并提出相应的解决方案和建议。
一、Web应用安全漏洞概述Web应用安全问题广泛存在于Web应用中的各个方面,包括但不限于服务器端、客户端、连接和数据库等。
其中,Web应用的安全漏洞是指由于开发人员在设计和编写Web应用程序时未考虑或忽略了一些安全因素,导致恶意用户能够利用这些缺陷来攻击Web应用程序,进而获取敏感信息或对Web应用程序进行破坏。
Web应用安全漏洞的存在给Web应用程序的安全性带来了巨大的威胁,因此,Web应用程序的安全问题应该得到足够的重视和解决。
二、Web应用安全漏洞的类型Web应用安全漏洞通常被归为以下几大类:1. 输入验证安全漏洞:指在用户输入数据时,因为开发人员未能正确验证用户输入数据的合法性,导致恶意用户可以在输入数据中嵌入攻击代码。
2. 认证与授权安全漏洞:指由于软件设计者没有考虑到认证和授权过程中的安全问题导致的漏洞。
例如,未经过身份验证的用户可以访问网站上敏感的资源,或者伪造用户身份访问资源。
3. 会话管理安全漏洞:Web应用程序在处理用户的会话信息时的漏洞。
例如,Session ID 未加密或Session ID遭到劫持等。
4. 跨站脚本攻击(XSS)安全漏洞:指攻击者通过注入脚本到Web页面中,达到获取用户隐私数据、伪造页面等目的的技术。
5. SQL注入安全漏洞:指攻击者通过修改SQL查询语句,来执行非授权的操作,例如获取用户敏感信息或者删除数据等。
三、Web应用安全漏洞检测技术Web应用程序的开发和维护过程中,安全检查是一个不可或缺的环节。
web应用渗透总结Web应用渗透测试是一种针对Web应用程序的安全评估方法,旨在发现潜在的安全漏洞和弱点,以确保应用程序的安全性和可靠性。
在进行Web应用渗透测试后,需要进行总结,以便更好地了解测试结果和制定相应的安全措施。
以下是一个Web应用渗透测试总结的示例:一、测试概述本次Web应用渗透测试的目标是评估应用程序的安全性,发现潜在的安全漏洞和弱点。
测试范围包括应用程序的所有功能和页面,以及与应用程序相关的网络基础设施。
二、测试方法本次测试采用了多种方法,包括但不限于:1. 手动测试:通过模拟用户行为,对应用程序进行深入的测试,包括输入验证、身份验证、授权等方面。
2. 自动测试:利用自动化工具对应用程序进行扫描,发现常见的安全漏洞和弱点。
3. 时间戳测试:通过检查应用程序的时间戳响应,发现潜在的漏洞和弱点。
4. 模糊测试:通过向应用程序发送随机或异常的数据,发现潜在的漏洞和弱点。
三、测试结果经过测试,我们发现以下安全漏洞和弱点:1. SQL注入漏洞:在用户登录页面存在SQL注入漏洞,攻击者可利用该漏洞获取敏感数据或执行恶意操作。
2. 跨站脚本攻击(XSS)漏洞:在用户个人信息页面存在XSS漏洞,攻击者可利用该漏洞在用户的浏览器中执行恶意脚本。
3. 未验证用户输入:在添加新用户功能中,未对用户输入进行验证,攻击者可利用该漏洞提交恶意数据或绕过身份验证。
4. 弱加密算法:在密码重置功能中,使用了弱加密算法,攻击者可利用该漏洞破解用户的密码。
四、建议措施针对以上安全漏洞和弱点,我们建议采取以下措施:1. 对所有用户输入进行验证和过滤,防止SQL注入攻击和XSS攻击。
2. 使用强加密算法对密码进行加密存储,提高密码的安全性。
3. 对敏感数据进行加密传输,确保数据在传输过程中的安全性。
4. 定期进行安全审计和漏洞扫描,及时发现和修复安全漏洞。
5. 加强安全培训和管理,提高开发人员的安全意识和技能水平。
基于WEB的应用程序安全测试技术董安林,武波西安电子科技大学软件工程研究所 陕西西安 (710071)摘 要:随着互联网技术的迅速发展,Web已经对商业、教育、政府和娱乐及我们的工作和生活产生了深远影响,基于Web的应用程序已经有了很大的市场。
但Web应用程序的安全性一直受到程序开发商和用户的关注,本文简要介绍了Web应用程序安全测试中应注意的几个方面及测试技术,从用户登录测试、缓存溢出测试、数据安全测试、客户端测试等方面进行了详细的分析。
关键词:Web应用软件安全测试基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。
基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的终端(浏览器)的显示是否合适。
重要的是,还要从最终用户的角度进行安全性和可用性测试。
1前言软件开发过程各阶段都可能产生错误。
据国外对一些大型软件系统的统计,需求分析与设计阶段产生的错误占64%,编码错误占36%。
因此,测试工作越早进行,发现和解决错误的代价越小,风险越小。
根据这个观点,Systeme Evolutif公司提出了“W-模型”,如图1所示。
“W-模型”由两个“V”重叠而成。
其中一个“V”表示开发过程,另一个“V”表示测试过程。
软件测试的各项测试活动与开发过程的各个阶段相对应。
同样安全性测试也贯穿于软件开发的全过程。
图1软件测试的W模型在图1所示的模型中,应用系统开发人员一般关注于提供正常工作的应用软件,而测试人员应该从一个用户的角度去考察,看一看是否能打破它。
所以,Web应用系统安全性测试的目标应该是:核实操作者只能访问其所属用户类型已被授权访问的那些功能或数据,同时检测用户操作对应用系统的危害性[1][2]。
2web 应用程序的安全隐患目前基于web的应用系统,大都采用三层体系结构。
如图2所示。
图2 web应用系统三层体系结构三层体系结构中,将整个应用系统分为了表示层、中间层和数据层。
Web应用系统中,每层的各个功能模块都有其自身的安全弱点,在程序运行中,主要有四个方面的安全隐患[2]:客户端(web浏览器、组件)服务器(web应用服务器、数据库服务器等)网络(web应用程序运行的网络环境)事务(web中各种应用)通常,web应用程序运行的网络环境的安全性由IT部门负责,包括防火墙测试、数据的转发、网络流量的监控、病毒防范以及服务器入侵检测等工作。
所以web应用程序的安全测试更多的关注其它三个方面。
对于客户端的安全隐患,一般会有以下有几种:java脚本、cookie、客户端设置等。
服务器端的安全隐患主要是拒绝服务攻击,可以通过压力测试、缓存溢出测试等方法进行测试;当然服务器端包括整个web应用程序中,最根本的安全隐患就是软件的bug,虽然应用程序无法完全避免bug,但我们可以通过测试、调试等手段使bug的安全隐患减少到最小。
事务中的安全隐患很多,常见的如电子欺骗,伪装成合法用户来窃取信息,一般通过用户登录、身份验证等方法进行测试;还有缓存区溢出,脏数据等方面的安全隐患。
3Web应用程序安全测试3.1用户登录测试3.1.1用户名与密码测试在软件研发中,为方便调试程序,开发人员通常在访问权限中,会主动建立一个超级用户账号来完成软件的总体设计与研发。
但在安全设计中,有一个很重要的原则是给用户尽可能少的访问权限以便他们可以执行与其身份相对应的操作,但不能执行非法操作[3]。
如果有超级用户的存在,最终用户就有可能利用此账号进行创建、修改、删除等一系列对数据表的操作,也可利用SQL语句改变URL,从而进行许多恶意的操作。
现在的Web应用系统基本采用先注册,后登录的方式。
对于用户登录和账户密码,可以从以下几个方面进行安全测试:测试有效和无效的用户名和密码,测试是否大小写敏感,是否有最大字符数的限制规则等。
测试重试次数的限制,如果登录失败的次数超过允许值,应用程序将会做出何种反应(譬如拒绝此IP地址在短时间内的登录)。
测试是否可以利用历史登录信息或以前的URL来绕开登录程序。
测试执行添加、删除、修改等动作中是否需要登录操作,退出系统之后的操作是否仍可继续等。
对于用户的认证,可以从以下几个方面进行安全测试:测试是否所有的合法用法都可以访问程序,非法用户都不能访问程序,如果非法用户企图登录,其难易程序有多大。
测试用户密码是否符合指定要求(字符、长度),如果不符合,对有什么影响,新用户自己修改密码后,创建时分配的密码是否会失效。
测试用户账户过期后,是否完全、正确的删除其信息或使其失效。
3.1.2手动修改URL参数的测试我们经常使用SQL调用来访问后台数据库中的数据,通过猜测或查阅历史记录,恶意用户可能会获得合法用户ID和密码列表。
例如,如果我们在应用程序中采用下面的语句进行用户身份的验证:Select * from userInfo where Login=’admin’ and password=’1234’如果非法用户使用下面的ID和密码Username adminPassword no’or1#则用户登录时应用程序后台调用的的SQL语句会变成:Select * from userInfo where Login=’admin’ and password=’ no’or1#’此时,password的值有可能被赋为‘no’or 1,因为#号可能会使数据库忽略其后的字符。
此时,由于任何值与1进行逻辑或运算,结果为真,所以系统会把该入侵者当作系统管理员,并将返回记录。
这是很可怕的。
还有一种手动修改的方法,例如,我们用合法用户身份登录后,访问的的网页是/djxl/query/460.apsx那么,手动将其修改为http:// /djxl /query/461.aspx会发生什么情况呢,可能会得到一个你没有权力访问的信息。
与此类似,Web应用程序中有很多的数据库访问目的地址是做为URL中的一个参数(出现在?后的字段),这些信息可以轻易地被非法用户得到,甚至猜测与它相邻的地址。
通过手动修改或调用,可能会在未经授权的情况下访问系统。
3.1.3会话超时的测试Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如20分钟)没有点击任何页面,理论上应认为此用户已下线,并需要重新登录才能正常使用。
对于Windows的IIS管理器,会话超时的设置如图3所示:图3 会话超时设置3.2cookie测试通过调用或改变cookie中的值,非法用户能够利用不属于他们的帐号,在无需用户和密码的情况下访问访问此账号的信息,另外,Cookie 是以纯文本的形式在浏览器和服务器之间传送的,任何可以截取 Web 通信的人都可以读取 Cookie。
所以cookie的不安全有可能导致应用程序和数据库的崩溃[3]。
基于Web的应用程序,为了安全,Cookie不应该保存到用户的硬盘上,而应成为用户会话信息的一部分,即采用会话cookie方式,如果用户关闭浏览器或会话超时,该 Cookie 就会被删除。
但会有一个新问题,如果客户端的机器内存不足,cookie(驻留在内存的)可能会被交换出至客户端的硬盘(虚拟内存中)。
此时,浏览器将被异常终止或崩溃,也就是没有正常退出系统,所以cookie很可能没有从虚拟内存中清除,于是会话cookie就有可能暴露在非法用户眼前。
如果应用程序为方便用户操作,使用了Cookies,就必须检查Cookies是否能正常工作。
测试的内容包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。
当然更重要的一点就是Cookies有效期限的测试。
对于Cookies的测试,一般IE的话可以使用IECookiesView170-Snoopy这个工具来测试保存在Cookie的数据。
3.3压力测试压力测试是为了发现在什么条件下Web应用程序的性能会变得不可接受。
也就是测试应用程序会不会崩溃,在什么情况下会崩溃。
非法用户常常使用错误的超常规的数据负载,直到Web应用程序崩溃,接着获得系统的控制权。
在测试环境中,压力测试可以通过改变应用程序的输入以对应用程序施加越来越大的负载并测量在这些不同的输入时性能的改变来实现的。
这种操作也称为负载测试。
负载测试通常描述为一种特定类型的压力测试——增加用户数量以对应用程序进行压力测试。
对应用程序进行压力测试最简单的方法是手工改变输入(客户机数量、需求大小、请求的频率、请求的混合程度等等)并描绘性能的变化。
但是如果有许多输入,或者需要在大的范围内改变输入,那么你可以借助一个自动化的压力测试工具如QALoad、loadrunner 等来完成此测试。
测试的内容有:Web应用程序同时允许多少用户在线?能否处理大批用户同时对同一页面的访问?如果出现异常,会出现什么情况等[4]。
图4是采用loadrunner软件进行事务响应时间测试结果[5]。
图4 事务响应时间测试结果3.4缓存溢出测试Web应用系统中,数据的输入输出很平常,攻击者可能会提交大量数据,试图引起缓存区溢出,当数据输入的大小超过了在程序内存中为其预留的空间大小时就会引起缓存区溢出,处理数据的程序就会运行失败,攻击者即可利用此来使Web应用程序瘫痪[4]。
虽然Web开发者可以使用某种客户端语言(JavaScript或VBScript)的一些内置功能来确保输入值的长度和默许值。
例如最常见的月份输入检测,只允许用户输入1到12之间的值。
在实际运行中,可能用户本身出于安全考虑,关掉了客户端的脚本功能,这样,输入检测就不会再发挥作用,用户可以输入34、99,甚至可能通过修改脚本等方法输入435、23643等任意数字,这就会使Web应用程序的安全服务进程出现问题。
所以就很有必要进行缓存区溢出的测试。
缓存溢出测试可以使用一些工具创造和提交大量数据,如Hailstrom等专门用来发送大量数据的工具,也可以通过脚本语言如Perl等实现。
有一种很直接的方法就是使用粘贴,这样可以把大量的数据发送到缓存区。
3.5脏数据测试脏数据问题属于数据库并发访问而引起不一致问题,即被称为“数据库并发控制过程冲突”,在并发控制过程冲突中,可能会产生三种数据:丢失数据、不可重复读数据和“脏”数据[3]。
并发控制冲突会引起数据的不完整,从而会来带来数据的错误,引发很严重的后果。
在数据库应用系统中,尤其是是一些大型的系统,如银行业务系统,订票系统等应用中,一般会使用数据库的加锁(Locking)技术来进行并发控制。
在脏数据测试中,需要从程序控制的流程和并发控制的逻辑两个方面来考试测试:程序流程测试。
按照数据处理的流程来设计测试的逻辑重点,分析并发控制的操作点,事务锁的使用情况。