软件测试——安全测试常见测试方法

目录

一、安全测试常见的测试方法

1.功能测试

2.漏洞扫描

3.模拟攻击实验

4.静态代码检查

5.动态渗透测试

6.数据扫描

二、SQL注入

1.验证用户输入

2.参数化查询

3.转义用户输入

4.限制数据库权限

5.安全更新

三、用户认证安全

1.不同用户权限

2.用户冲突

3.用户权限改变

4.登陆密码安全性

5.绝对路径登录

6.退出系统

四、数据库安全

1.数据泄密

2.入侵和恶意攻击

3.数据备份与恢复

五、系统网络安全

1.漏洞扫描工具

2.网络及应用系统扫描

六、登录安全的其他问题

1.连续失败后的处理策略

2.用户登录密码

3.验证码

4.页面超时

5.cookie存储

6.https协议

七、越权问题

1.未授权访问

2.修改参数

八、页面权限泄漏

九、HTML注入

十、文件下载

1.权限限制

2.删除参数

十一、上传文件

1.文件格式

2.文件大小

3.文件名

4.文件内容

5.用户权限

6.上传空间

7.上传成功的判断

8.日志记录

写在结尾


一、安全测试常见的测试方法

1.功能测试

采用软件测试中的黑盒测试方法,对涉及安全的软件功能,如用户管理模块、权限管理模块、加密系统、认证系统等进行测试,主要是验证各个模块功能是否有效。

2.漏洞扫描

借助于特定的漏洞扫描工具,能够发现所维护信息系统存在的安全漏洞,为信息系统网络安全防护做到有的放矢,及时修补漏洞。

3.模拟攻击实验

以模拟攻击来验证软件或者信息系统的安全防护能力。

4.静态代码检查

通过代码走读的方式对源代码的安全性进行测试,常用的代码检查方法有:数据流、控制流、信息流等,通过这些测试方法与安全规则库进行匹配,进而发现潜在的安全漏洞。静态代码检查主要在编码阶段进行测试,尽可能早地发现安全性问题。

5.动态渗透测试

借助工具或者手工模拟黑客的输入,对应用程序进行安全测试,进而发现系统中的安全性问题。动态渗透测试一般在系统测试阶段进行。

6.数据扫描

主要是对内存进行测试,尽量发现诸如缓冲区溢出之类的漏洞。

二、SQL注入

SQL注入是一种常见的网络攻击技术,通过利用应用程序在构建SQL查询时的漏洞进行攻击。这些漏洞通常是由于应用程序没有正确验证用户输入或者没有适当地转义用户输入导致的。举个例子:一个登录页面输入用户名和密码,用户名输入框直接输入'or'1=1时,查询SQL就变成了select *from sys_user where username=''or'1=1';这将返回所有的用户记录,从而跳过了用户名的验证,实现了入侵。

为了防止SQL注入攻击,应该采取以下措施:

1.验证用户输入

对于任何用户输入,应该使用合适的验证技术来确保输入的有效性和安全性。例如,可以使用正则表达式或者启发方式来检测可能的恶意输入。

2.参数化查询

使用参数化查询或预编译语句来构建SQL查询。这样可以确保用户输入被视为数据而不是SQL代码的一部分,从而防止攻击者注入恶意的SQL代码。

3.转义用户输入

对于任何用户输入,应该使用适当的转义技术来转义特殊字符。例如,可以使用MySQL的‘mysqli_real_escape_string’函数来转义字符串中的特殊字符。

4.限制数据库权限

应该将应用程序连接到的数据库的权限限制到最低限速。例如,可以为应用程序创建一个只拥有读取数据的用户账号,从而限制攻击者可以执行的操作。

5.安全更新

定期更新应用程序和数据库软件的安全补丁,以确保系统免受已知漏洞的攻击。

三、用户认证安全

1.不同用户权限

确保系统能够明确区分不同用户的权限。

2.用户冲突

检查系统中是否存在用户冲突的问题。

3.用户权限改变

检查系统是否因为用户权限的改变而造成混乱。

4.登陆密码安全性

检查用户的登录密码是否可见(接口传参时要加密传输)、可复制。

5.绝对路径登录

检查系统是否存在通过绝对路径登录的问题,如:直接拷贝已登录系统的连接,应默认跳转到登录页面,限制直接查看。

6.退出系统

检查用户退出登录系统后,是否删除了所有鉴权标记,并无法通过后退键再次直接进入系统。

四、数据库安全

1.数据泄密

数据库中的敏感数据需要加密显示(尤其是银行系统、保密系统等,一般有账号密码、银行卡号等等)。

2.入侵和恶意攻击

黑客和恶意内部人员可能试图访问或者篡改数据库中的数据。因此,需要实施强大的访问控制策略,并使用防火墙、入侵检测和响应以及加密等技术来保护数据库。

3.数据备份与恢复

必须制定数据库备份和恢复计划,以防止数据丢失和灾难性事件,主要包括:定期备

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你关于自助票务系统的软件测试问题。 首先,自助票务系统需要进行什么类型的测试? 1. 功能测试:测试系统的各项功能是否正常,如购票、退票、修改订单等。 2. 性能测试:测试系统的性能指标,如响应速度、并发处理能力等。 3. 兼容性测试:测试系统在不同的操作系统、浏览器、设备上的兼容性。 4. 安全测试:测试系统的安全性,如是否存在漏洞、是否符合相关安全标准等。 5. 可用性测试:测试系统的易用性,如界面设计、操作流程等。 接下来,我们可以根据以上测试类型,分别进行具体的测试工作。 1. 功能测试: 在功能测试中,我们需要针对系统的各项功能进行测试,包括购票、退票、修改订单等。具体测试用例可以根据实际情况编写,例如: 购票: - 测试用户能否成功登录系统; - 测试用户能否正确选择目的地和出发时间; - 测试用户能否成功选座购票; - 测试用户能否成功支付订单; - 测试用户能否正确收到购票信息。 退票: - 测试用户能否成功登录系统; - 测试用户能否找到已购票的订单; - 测试用户能否成功申请退票; - 测试用户能否正确收到退票信息。 修改订单: - 测试用户能否成功登录系统; - 测试用户能否找到已购票的订单; - 测试用户能否成功修改订单信息; - 测试用户能否正确收到订单修改信息。 2. 性能测试: 在性能测试中,我们需要测试系统的各项性能指标,包括响应速度、并发处理能力等。具体测试用例可以根据实际情况编写,例如: 响应速度: - 测试用户在不同网络环境下,系统的响应速度; - 测试系统在高峰期的响应速度。 并发处理能力: - 测试系统能否同时处理多个用户的请求; - 测试系统在高并发情况下的处理能力。 3. 兼容性测试: 在兼容性测试中,我们需要测试系统在不同的操作系统、浏览器、设备上的兼容性。具体测试用例可以根据实际情况编写,例如: 操作系统: - 测试系统在不同操作系统下的兼容性,如Windows、MacOS、Linux等。 浏览器: - 测试系统在不同浏览器下的兼容性,如Chrome、Firefox、Safari等。 设备: - 测试系统在不同设备上的兼容性,如PC、手机、平板等。 4. 安全测试: 在安全测试中,我们需要测试系统的安全性,包括是否存在漏洞、是否符合相关安全标准等。具体测试用例可以根据实际情况编写,例如: 漏洞测试: - 测试系统是否存在常见的漏洞,如SQL注入、XSS攻击等。 安全标准测试: - 测试系统是否符合相关安全标准,如PCI DSS等。 5. 可用性测试: 在可用性测试中,我们需要测试系统的易用性,包括界面设计、操作流程等。具体测试用例可以根据实际情况编写,例如: 界面设计: - 测试系统的界面设计是否符合用户习惯; - 测试系统的界面是否简洁明了。 操作流程: - 测试系统的操作流程是否合理; - 测试系统是否提供足够的帮助信息。 以上是我对自助票务系统进行软件测试的建议,希望能对你有所帮助。如果你有其他问题,可以随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值