`
yangzb
  • 浏览: 3470251 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在网站测试中如何做好安全性测试?

阅读更多

 软件测试每周一问:随着网络发展的趋势,对于网站的安全性的要求也越来越高,很多网站都存在被黑客攻击的漏洞,你在网站测试中有做到安全性测试吗?你觉得安全测试应该从哪些方面来检查?欢迎大家讨论交流!

  会员卖烧烤的鱼的精彩回答:

  安全性测试(security testing)是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。

  注意:安全性测试并不最终证明应用程序是安全的,而是用于验证所设立策略的有效性,这些对策是基于威胁分析阶段所做的假设而选择的。

  以下是我读<<软件评测试教程>>中的Web安全性测试章节内容,并进行修改的笔记,前面看了好多朋友写的,不过不是很全,希望对大家有所帮助,建议大家还是买本<<软件评测试教程>>此书绝对物超所值^_^

WEB安全性测试
  一个完整的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有着非常友好的用户界面,还可以生成个性化的网站安全评估报告。

  另附我以前在51testing上发过“Yeepay网站安全测试漏洞之跨站脚本注入”
http://bbs.51testing.com/thread-113784-1-1.html
  Sql注入和跨站脚本这种漏洞比较常见,另在支付宝网站注册页面也存在跨站脚本情况,希望能早点发现^_^


分享到:
评论

相关推荐

    软件测试经典面试题 (超实用)

    1、什么是兼容性测试?兼容性测试侧重哪些方面? 5 2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题? 5 3、测试的策略有哪些? 5 4、正交表测试用例设计方法的特点是...

    软件测试经典面试题

    1、什么是兼容性测试?兼容性测试侧重哪些方面? 5 2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题? 5 3、测试的策略有哪些? 5 4、正交表测试用例设计方法的...

    软件测试入门(必看)

    10.5 安全性测试 48 10.6 总结 49 十一 为盈利而测试 49 11.1 引言 49 11.2 什么是软件测试 50 11.3 六个误区 50 11.3.1 误区一:忽视对正常输入的测试 50 11.3.2 误区二:忽视设计阶段的参与与评估 50 ...

    做好安全测试的整套方法和建议

    软件安全属于软件领域里一个重要的子领域。在以前的单机时代,安全问题主要是操作系统容易感染病毒,单机...但是自从互联网普及后,软件安全问题愈加显加突显,使得软件安全性测试的重要性上升到一个前所未有的高度。

    软件测试必看 入门级的教程

    10.5 安全性测试 48 10.6 总结 49 十一 为盈利而测试 49 11.1 引言 49 11.2 什么是软件测试 50 11.3 六个误区 50 11.3.1 误区一:忽视对正常输入的测试 50 11.3.2 误区二:忽视设计阶段的参与与评估 50 ...

    避免沙堆建楼做好软件安全测试

    近来,在我负责的公司某软件产品的最后测试工作,常常被问到这样一个问题:在做测试过程中,我们的软件产品在安全性方面考虑了多少?应该如何测评一个软件到底有多... 什么是软件安全性测试 (1)什么是软件安全 软件安

    基于 web软件条件下安全性测试技术与方法问题初探 (2011年)

    由于当前web测试对于页面应用程序具有非常高的挑战性,而在当今社会用户对web页面质量要求非常高,如何在当前背景下做好基于web软件条件下安全性测试,这有着十分重要的现实意义,笔者正是从这方面入手,重点探讨 基于web...

    loadrunner测试资料

    系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言包括执行效率、资源占用率、稳定性、安全性、兼容性、可靠性等等,以下重点从负载压力方面来介绍服务器系统性能的测试。系统的负载和压力需要采用...

    软件测试工程师如何做好需求分析

    软件测试工程师如何做好需求分析?什么是需求需求是产品必须完成的事以及必须具备的品质。功能性需求功能性需求是产品必须完成的那些事,要求一定的功能和品质。例子:培训机构的班主任可以给所在班级学员打考勤非...

    X2安规电容可以并联使用吗

    毕竟对于这类电容来说,是具有一定安全性的产品,在失效之后也能保障安全性能,因此做好检测和相关的测试是很关键的。那么在进行检测的时候需要做好哪些细节呢? 常见的x2安规电容测试主要包含以下几项: 耐电压...

    计算机网络安全相关资料分享.zip

    信息等级保护体系在云安全中的应用 一种基于分层聚类方法的木马通信行为检测模型 移动恶意代码的关联与追踪 移动手机应用软件安全测试 重要行业信息系统安全风险 自主可控云计算平台关键技术 做好新型信息技术发展...

    校内API开发. pdf

    进内存中在大量应用中服务器资源会用尽但如果用DataReader就没有个等同于strongly typed Row对象种思 路方法就是反复运用Data和DataReader这样会形成强类型对象是很理想 我用种思路方法就是对每个表用个Proxy对象和...

    基于PHP 创佳迷你全站系统 v1.0-mtv的毕业设计,该系统采用MVC开发模式,具有简单易用、高效稳定、易于扩展等特点

    本毕设旨在设计和开发基于PHP...在测试过程中,将发现和修复系统中存在的各种缺陷和问题,确保系统的质量和稳定性。 ## 阶段五:系统部署 在这个阶段,将对系统进行部署和安装,将系统部署到服务器上,并进行相关配置

    28---网络安全政策.docx

    凡购回的设备均应在测试环境下经过连续72小时以上的单机运行测试和联机48小时的应用系统兼容性运行测试并形成设备检测测试记录。 1.3 IT设备(硬件)安装设备符合公司IT 系统选型要求并获核准后,方可购回安装;通过1.2...

    信息系统安全应急预案.doc

    为切实 加强我司网络运行安全与信息安全的防范,做好应对网络与信息安全突发公共事件的应 急处理工作,进一步提高预防和控制网络和信息安全突发事件的能力和水平,昀大限度 地减轻或消除网络与信息安全突发事件的...

    Java项目经验汇总.docx

    保证系统安全性:在开发过程中,需要注意系统安全性问题,如密码加密、文件上传、访问控制等方面。 测试和调试:在开发过程中,需要进行测试和调试,使用单元测试、集成测试等技术确保系统质量和稳定性。 持续学习和...

    网络安全主机安全加固.doc

    实施加固 对系统实施加固和优化主要内容包含以下两个方面: 对系统进行加固 对系统进行测试 对系统进行测试的目的是检验在对系统实施安全加固后,系统在安全性和功能性上是 否能够满足客户的需求。上述两个方面的...

    数据库操作规范.docx

    适用范围 本规范中所定义的数据管理内容,特指存放在信息系统数据库中的数据,对于存放在其他介质的数据管理,参照相关管理办法执行。 3.数据库管理员主要职责 3.1负责对数据库系统进行合理配置、测试、调整,最大...

    Dungeon Mania 地下城狂热 Unity ARPG地下城动作冒险游戏项目源码C# 1.7G

    Dungeon Mania 地下城狂热 Unity离线 ARPG地下...你的王国非常美丽,充满资源,敌人想要在角色扮演冒险游戏中停止你的王国,所以,现在你的主要目标是拯救你的王国,现在你的城市的安全是你在角色扮演冒险游戏中的手。

    1ABB机器人安全操作规程.doc

    在编程、测试及维修时,必须将机器人置于手动模式,不要轻易使用100%手动模式。 6. 机器人处于自动模式时,任何人任何时候不允许进入其运动所及的区域。既使在低速 时,机器人仍然动量很大,可能伤人。 7. 按照产品...

Global site tag (gtag.js) - Google Analytics