中国电科旗下高技能it教育培训机构
当前位置: 皇冠盘网址-最新皇冠会员网址 课程培训 > 软件测试培训 > 了解问题 > 软件测试工程师必须要掌握的三大常识
软件测试工程师必须要掌握的三大常识
2019-09-24 14:52:24
软件测试工程师是千万软件用户的守护者、软件产品质量的把关者。
也就是说,一款软件产品的安全性、用户体验等等,都需要软件测试工程师来进行专业的测评。今天,安妹先来给大家介绍一下,测试工程师在对web应用系统的安全性进行测试时,必须要掌握的三个常识:
一、web应用系统中的安全问题是什么原因导致的?
1、复杂的web应用系统代码量大、开发人员多、出现疏忽在所难免。
2、系统不断升级、开发人员频繁变动,导致代码不同。
3、多个web系统共同在同一台服务器上进行运行
4、开发人员没有经过专业的安全编码培训,或者该公司也没有统一安全编码的规范。
5、测试人员经验不足或者未经过专业安全评估测试就将系统上线。
6、过分信任用户,不针对用户的输入进行验证。
举个例子:
(1)永远不要信任用户的输入!必须对用户的输入进行反复校验
(2)数字型的输入必须是合法有效的数字
(3)字符型的输入,要对编码符号要进行特殊处理
(4)要验证所有的输入点,包括get,post,cookie以及其他http头
二、这十大安全问题,最常见
1、sql注入
拼接的sql字符串改变设计者原来的意图,执行了如泄露、改变数据等操作,甚至控制数据库服务器, sql injection与command injection等攻击包括在内。
2、跨站脚本攻击(简称css或xss)
跨站脚本(cross - sitescripting)是指远程web页面的html代码可以插入具有恶意目的数据,当浏览器下载该页面,嵌入其中的恶意脚本将被解释执行,从而对客户端用户造成伤害。
3、没有限制url访问
系统已经对url的访问做了限制,但这种限制却实际并没有生效。攻击者能够很容易伪造请求,直接访问未被授权的页面.。
4、越权访问
用户对系统的某个模块或功能没有权限,通过拼接url或cookie欺骗来访问该模块或功能。
5、泄露配置信息
服务器返回的提示或错误信息中出现服务器版本信息泄露、程序出错泄露物理路径、程序查询出错返回sql语句、过于详细的用户验证返回信息。
6、不安全的加密存储
常见的问题是不安全的密钥生成和储存、不轮换密钥和使用弱算法。使用弱的或者不带salt的哈希算法来保护密码也很普遍。外部攻击者因访问的局限性很难探测这种漏洞。他们须先破解其他东西以获得需要的访问。
7、传输层保护不足
在身份验证过程中没有使用ssl / tls,因此暴露传输数据和会话id,被攻击者截听,或使用过期或者配置不正确的证书。
8、登录信息提示
用户登录提示信息会给攻击者一些有用的信息,作为程序的开发人员应该做到对登录提示信息的模糊化,以防攻击者利用登录得知用户是否存在。
9、重复提交请求
程序员在代码中没有对重复提交请求做限制,这样就会出现订单被多次下单,帖子被重复发布。恶意攻击者可能利用此漏洞对网站进行批量灌水,致使网站瘫痪。
10、网页脚本错误
访问者所使用的浏览器不能完全支持页面里的脚本,形成“脚本错误”,也就是网站中的脚本没有被成功执行。遇到“脚本错误”时一般会弹出一个非常难看的脚本运行错误警告窗口。
三、在测试过程中,需要注意哪些问题?
1、永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式或限制长度;对单引号和双"-"进行转换等。
2、永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3、永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4、不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5、应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。
6、sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky、mdcsoft scan等。采用mdcsoft - ips可以有效的防御sql注入、xss攻击等。
公开课
开班时间 更多
视频教程