|
软件安全性是一个广泛而复杂的主题,每一个新的软件总可能有完全不符合所有已知模式的新型安全性缺陷出现。要避免因安全性缺陷问题受各种可能类型的攻击是不切实际的。在软件安全测试时,运用一组好的原则来避免不安全的软件上市、避免不安全软件受攻击,就显得十分重要。什么是安全性测试?软件安全性测试包括程序、网络、数据库安全性测试。根据系统安全指标不同测试策略也不同。下面是我总结的一些常见安全性测试的测试点:1.注入攻击通过构造查询对数据库、LDAP和其他系统进行非法查询2.伪造跨站点请求发起Blind 请求,模拟合法用户,要求转账等请求3.恶意文件执行在服务器上执行Shell 命令Execute,获取控制权4.被破坏的认证和Session管理验证Session token 保护措施,防止盗窃session5.Session的失效时间限制Session的失效时间设置是否过长,会造成访问风险6.注册与登录测试验证系统先注册后登录、验证登录用户名和密码匹配校验,密码长度及尝试登录次数,防止非法用户登录7.在登录或注册功能中是否有验证码存在,防止恶意大批量注册登录的攻击8.不安全对象引用不安全对象的引入,访问敏感文件和资源,WEB应用返回敏感文件内容9.不安全的通讯敏感信息在不安全通道中以非加密方式传送,敏感信息被盗窃,验证其通讯的安全性10.不安全的木马存储过于简单的加密技术导致黑客破解编密码,隐秘信息被盗窃,验证其数据加密11.信息泄露和不正确错误处理测试恶意系统检测,防止黑客用获取WEB站点的具体信息的攻击手段获取详细系统信息12.身份验证验证调用者身份、数据库身份、验证是否明确服务账户要求、是否强制式试用账户管理措施13.超时限制验证WEB应用系统需要有是否超时的限制,当用户长时间不做任何操作的时候,需要重新登录才能使用14.授权验证如何向最终用户授权、如何在数据库中授权应用程序,确定访问系统资源权限15.目录文件验证WEB服务器目录访问权限,或者每个目录访问时有index.htm,防止 WEB 服务器处理不适当,将整个WEB目录暴露16.日志文件验证服务器上日志是否正常工作,所有事务处理是否被记录17.密码强度提醒建议对密码的规则进行加强设置18.会话验证如何交换会话标识符、是否限制会话生存期、如何确保会话存储状态安全19.配置管理验证是否支持远程管理、是否保证配置存储安全、是否隔离管理员特权20.备份与恢复为了防止系统意外崩溃造成的数据丢失,验证备份与恢复功能正常实现、备份与恢复方式是否满足Web系统安全性要求21.数据库关键数据是否进行加密存储,是否在网络中传递敏感数据22.跨网站脚本攻击通过脚本语言的缺陷模拟合法用户,控制其账户,盗窃敏感数据23.Cookie文件是否进行了加密存储,防止盗用cookie内容24.URL访问限制失效验证是否通过恶意手段访问非授权的资源链接,强行访问一些登陆网页,窃取敏感信息25.密码内容禁止拷贝粘贴列举几个安全性测试方法:1、session与cookie避免保存敏感信息到cookie文件中,cookie的保存可以提高用户的体验。作用域:Set-Cookie:PHPSESSIONID= ;pash=/相对于根目录而言的,如C:\xampp\htdocs就是根目录,agileone保存的信息是在phpwind是能读取到的,相互之间是同样的作用域,两个系统可以交叉读取cookie信息。解决办法是:不同的应用系统不同的作用域,如将agileone和phpwind两个应用配置在不同的作用域当中:即可修改代码path=/agileone,path=/phpwind.2、认证与授权尽量避免未被授权的页面可以直接访问,应该对每个页面都有一个session变量的判断。如果没有判断只要用户知道URL地址就能进行访问。测试方法:在不登陆的情况下,使用绝对URL地址对页面进行访问,能否正常访问,绝对URL地址直接通过httpwatch对每个请求进行获取。3、DDOS拒绝服务攻击(1)分布式的拒绝服务式攻击(攻击服务器的电脑分布在不同地方向服务器发送请求)的两种方式:1) 使用肉机通过设置木马让很多电脑受远程控制,帮忙执行病毒程序,服务器防火墙无法通过封锁IP的方式进行处理,唯一的解决办法就是服务器够强大;2) 形成攻击联盟很多人联合起来对同一个网站发起攻击,对网站流量形成一定压力,对同一网站造成伤害。总结:安全无小事,认真对待你发现的每一个BUG,也许错过它,就是公司破产的第一步!BUG不分大小均记录,有利于经验的整理、线上回题回溯、背锅时的有理有据反驳!努力提升知识广度,开拓眼界,增加思维的深度!文章来源于: 51Testing软件测试网,版权归原作者所有,如有侵权,请联系删除。
|