一个完整的WEB安全性测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密。参数操作、异常管理、审核和日志记录等几个方面入手。
1.安全体系测试
1)部署与基础结构
网络是否提供了安全的通信
部署拓扑结构是否包括内部的防火墙
部署拓扑结构中是否包括远程应用程序服务器
基础结构安全性需求的限制是什么
目标环境支持怎样的信任级别
2)输入验证
l如何验证输入
A.是否清楚入口点
B.是否清楚信任边界
C.是否验证Web页输入
D.是否对传递到组件或Web服务的参数进行验证
E.是否验证从数据库中检索的数据
F.是否将方法集中起来
G.是否依赖客户端的验证
H.应用程序是否易受SQL注入攻击
I.应用程序是否易受XSS攻击
l如何处理输入
3)身份验证
是否区分公共访问和受限访问
是否明确服务帐户要求
如何验证调用者身份
如何验证数据库的身份
是否强制试用帐户管理措施
4)授权
如何向最终用户授权
如何在数据库中授权应用程序
如何将访问限定于系统级资源
5)配置管理
是否支持远程管理
是否保证配置存储的安全
是否隔离管理员特权
6)敏感数据
是否存储机密信息
如何存储敏感数据
是否在网络中传递敏感数据
是否记录敏感数据
7)会话管理
如何交换会话标识符
是否限制会话生存期
如何确保会话存储状态的安全
8)加密
为何使用特定的算法
如何确保加密密钥的安全性
9)参数操作
是否验证所有的输入参数
是否在参数过程中传递敏感数据
是否为了安全问题而使用HTTP头数据
10)异常管理
是否使用结构化的异常处理
是否向客户端公开了太多的信息
11)审核和日志记录
是否明确了要审核的活动
是否考虑如何流动原始调用这身份
2.应用及传输安全
WEB应用系统的安全性从使用角度可以分为应用级的安全与传输级的安全,安全性测试也可以从这两方面入手。
应用级的安全测试的主要目的是查找Web系统自身程序设计中存在的安全隐患,主要测试区域如下。
注册与登陆:现在的Web应用系统基本采用先注册,后登录的方式。
A.必须测试有效和无效的用户名和密码
B.要注意是否存在大小写敏感,
C.可以尝试多少次的限制
D.是否可以不登录而直接浏览某个页面等。
在线超时:Web应用系统是否有超时的限制,也就是说,用户登陆一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
操作留痕:为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进入了日志文件,是否可追踪。
备份与恢复:为了防范系统的意外崩溃造成的数据丢失,备份与恢复手段是一个Web系统的必备功能。备份与恢复根据Web系统对安全性的要求可以采用多种手段,如数据库增量备份、数据库完全备份、系统完全备份等。出于更高的安全性要求,某些实时系统经常会采用双机热备或多级热备。除了对于这些备份与恢复方式进行验证测试以外,还要评估这种备份与恢复方式是否满足Web系统的安全性需求。
传输级的安全测试是考虑到Web系统的传输的特殊性,重点测试数据经客户端传送到服务器端可能存在的安全漏洞,以及服务器防范非法访问的能力。一般测试项目包括以下几个方面。
HTTPS和SSL测试:默认的情况下,安全HTTP(Soure HTTP)通过安全套接字SSL(Source
Socket Layer)协议在端口443上使用普通的HTTP。HTTPS使用的公共密钥的加密长度决定的HTTPS的安全级别,但从某种意义上来说,安全性的保证是以损失性能为代价的。除了还要测试加密是否正确,检查信息的完整性和确认HTTPS的安全级别外,还要注意在此安全级别下,其性能是否达到要求。
服务器端的脚本漏洞检查:存在于服务器端的脚本常常构成安全漏洞,这些漏洞又往往被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
防火墙测试:防火墙是一种主要用于防护非法访问的路由器,在Web系统中是很常用的一种安全系统。防火墙测试是一个很大很专业的课题。这里所涉及的只是对防火墙功能、设置进行测试,以判断本Web系统的安全需求。
另推荐安全性测试工具:
Watchfire
AppScan:商业网页漏洞扫描器(此工具好像被IBM收购了,所以推荐在第一位)
AppScan按照应用程序开发生命周期进行安全测试,早在开发阶段就进行单元测试和安全保证。Appscan能够扫描多种常见漏洞,例如跨网站脚本、HTTP应答切开、参数篡改、隐藏值篡改、后门/调试选项和缓冲区溢出等等。
Acunetix
Web Vulnerability Scanner:商业漏洞扫描器(目前用的比较多,不过这东东N占内存)
Acunetix WVS自动检查您的网页程序漏洞,例如SQL注入、跨网站脚本和验证页面弱密码破解。Acunetix WVS有着非常友好的用户界面,还可以生成个性化的网站安全评估报告。
分享到:
相关推荐
**软件安全性测试**是一种评估软件安全性的过程,旨在验证应用程序的安全等级并识别潜在的安全性缺陷。具体来说,软件安全可以分为两个层次: 1. **应用程序级别的安全性**:关注于数据或业务功能的访问控制。在...
此外,做好APP安全性测试还需要开发团队与安全专家的紧密合作,建立完善的测试流程,定期进行安全审计,并及时跟进安全漏洞的修复。同时,开发者应采用安全编码的最佳实践,减少潜在的安全风险。 参考文献和专业...
对于安全要求较高的软件,专门的安全性测试至关重要,因为它能够在问题发生前预防和识别安全隐患。测试的目标不是绝对证明软件安全,而是验证设定的安全策略有效性,例如,检查软件抵御非法入侵的能力。 在安全测试...
安全性测试并不保证软件绝对安全,而是验证所采取的安全策略的有效性,例如防止未授权访问和恶意破坏。 常见的【安全性测试方法】包括: 1. **静态代码安全测试**:通过扫描源代码,根据安全规则库检测潜在安全...
安全性测试不是证明软件绝对安全,而是验证所采取的安全策略是否有效,以抵御各种内部或外部的非授权访问和破坏尝试。 3. **安全性测试方法** - **静态代码安全测试**:通过扫描源代码,对比安全规则库,找出设计...
5. **安全性测试**:随着网络安全威胁日益严峻,确保软件的安全性变得尤为重要。 #### 四、有效沟通与团队协作 1. **会议纪要**:正如文中提到的“做好会议纪要”,这一步骤对于确保所有团队成员对项目的理解一致...
这包括功能测试、性能测试、安全测试、兼容性测试等多个方面。例如,LoadRunner和JMeter可用于性能测试,以评估系统在高负载下的表现。 4. **验收测试**:也称为用户接受测试,这一阶段由最终用户或代表用户的团队...
2. 非功能性测试:关注软件的性能、安全性、兼容性、可维护性等方面。例如压力测试、安全测试、兼容性测试等。 3. 回归测试:在修改或新增功能后,对软件进行重新测试,以确保原有功能未受影响。 4. 验收测试(用户...
由于当前web测试对于页面应用程序具有非常高的挑战性,而在当今社会用户对web页面质量要求非常高,如何在当前背景下做好基于web软件条件下安全性测试,这有着十分重要的现实意义,笔者正是从这方面入手,重点探讨 基于web...
为了做好安全检查,需要明确检查的目的,制定详细计划,选择合适的检查方法,关注重点区域,并确保所有参与者都清楚检查的重要性。同时,检查结果应及时反馈并用于改进安全措施,形成持续改进的安全文化。 总结来说...
3. **兼容性测试**:测试App在不同设备上的表现,包括不同分辨率、操作系统版本、手机厂商和屏幕尺寸。确保App能在各种环境下正常工作。 4. **冲突测试**:主要检查App与其他安全软件的兼容性,避免被误报为病毒或...
3. **稳定性测试**:检查网站在长时间高负载下的表现,观察是否有崩溃或性能下降的情况。 4. **资源消耗分析**:了解服务器、数据库和其他组件在高负载下的资源使用情况,以便优化配置。 5. **故障恢复**:测试系统...
8. 网站测试:贝邦网站的测试包括网站功能测试、网站性能测试、网站安全性测试、网站稳定性测试、浏览器兼容性测试、可用性/易用性测试、链接测试、代码合法性测试等,以确保网站的安全性、可靠性和高效性。
渗透测试,又称“白帽黑客攻击”,是一种通过模拟黑客攻击手段来评估系统安全性的方式,旨在发现并修复潜在漏洞,提升网络安全防护能力。 本课程将涵盖以下几个关键知识点: 1. **渗透测试概述**:介绍渗透测试的...
近来,在我负责的公司某软件产品的最后测试工作,常常被问到这样一个问题:在做测试过程中,我们的软件产品在安全性方面考虑了多少?应该如何测评一个软件到底有多... 什么是软件安全性测试 (1)什么是软件安全 软件安
软件测试在软件开发生命周期中扮演着至关重要的角色,它不仅能够帮助发现和修复潜在的缺陷,还能够确保软件系统的稳定性、可靠性和安全性。本文将从软件测试的概念、原则和常见的测试方法等方面,介绍如何做好软件...
BackTrack 4通过模拟黑客攻击行为,帮助企业发现并修复系统中存在的安全漏洞,从而提升整体的信息安全性。 #### 二、环境准备与测试流程 在进行渗透测试前,需要做好充分的准备工作。这包括但不限于: - **环境...
开发者应当根据用户的需求、功能要求、管理方式和使用习惯来逐一测试网站的功能。测试时,需要实际模拟用户操作,找出隐藏的错误和缺陷,并及时进行修正,以满足用户的功能需求。 **浏览器兼容性测试** 是另一个...