求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
目录
软件测试
1.教程
2. 软件测试原则
3. 软件开发生命周期(SDLC)
4. 软件测试命周期(STLC)
5. 软件测试的类型
6. 测试成熟度模型
7. 测试级别
SDLC 模型
1.瀑布模型
2.螺旋模型
3.混合模型
4.原型模型
5. V模型/V和V模型/验证和验证模型
测试的类型
1.手动测试
2.自动化测试
手册的类型
1.白盒测试
2.黑盒测试
3.灰盒测试
白盒技术
1.数据流测试
2.控制流测试
3.分支覆盖测试
4.语句覆盖率测试
5.决策覆盖率测试
黑盒技术
1.决策表
2.全对测试
3.黑盒测试中的因果图
4.状态转换技术
5.用例技术
黑盒的类型
1.功能测试
2.非功能性测试
功能类型
1.单元测试
2.集成测试
3.系统测试
非功能性的类型
1.性能测试
2.易用性测试
3.兼容性测试
测试用例开发
1.测试文档
2.测试场景
3.测试用例
测试技术
1.错误猜测技术
2.等效分区技术
3.边界值分析
测试管理
1.测试计划
2.测试用例审查过程
3.需求可追溯性矩阵
缺陷跟踪
1.软件测试中的错误
2.Bug生命周期
3.测试中bug的严重性和优先级
4.测试环境
5.缺陷管理过程
其他类型的测试
1.回归测试
2.冒烟测试
3.健全性测试
4.静态测试
5.动态测试
6.负载测试
7.压力测试
8.恢复测试
9.探索性测试
10.可视化测试
11.验收测试
12.Alpha 测试
13.Beta 测试
14.数据库测试
15.主机测试
16.Adhoc测试
17.全球化测试
18.变异测试
19.安全测试
20.可访问性测试
21.结构测试
22.批量测试
23.可伸缩性测试
24.稳定性测试
25.峰值测试
26.负面测试
27.正面测试
28.耐久性测试
29.可靠性测试
30.Monkey测试
31.敏捷测试
32.组件测试
33.GUI测试
34.测试策略
软件测试工具
1.软件测试工具
2.测试管理工具
3.缺陷/Bug跟踪工具
4.自动化测试工具
5.性能测试工具
6.跨浏览器测试工具
7.集成测试工具
8.单元测试工具
9.移动测试工具
10.GUI测试工具
11.安全测试工具
12.渗透测试工具
差异
1.自动化测试与手动测试
2.负载测试与压力测试
3.冒烟测试和健全性测试之间的差异
4.系统测试和验收测试之间的差异
5.质量保证与质量控制
6.静态测试与动态测试
7.验证和确认测试
8.Alpha 测试和 Beta 测试
9.黑盒测试与白盒测试与灰盒测试
10.全球化测试和本地化测试之间的区别
11.测试用例与测试场景
12.测试计划 VS.测试策略
13.边界值分析和等价划分之间的差异
14.SDLC VS.STLC
15.Bug, Defect, Error, Fault 和 Failure之间的区别
16.测试和调试之间的区别
17.前端测试 VS.后端测试
18.HLD和LLD的区别
19.BRS vs SRS
20.正面测试和负面测试之间的区别
21.自上而下和自下而上的集成测试之间的区别
22.用例和测试用例之间的区别
23.Monkey 测试 VS Gorilla 测试
24.Stubs和Drivers之间的区别
25.组件测试和单元测试之间的区别
26.软件测试和嵌入式测试之间的区别
27.GUI 测试和可用性测试之间的差异
28.SDET和Tester的区别
29.桌面应用程序测试、客户端-服务器应用程序测试和 Web 应用程序测试之间的区别
30.主动测试
31.什么是API
32.自动化测试
 
 
目录
安全测试
来源:Javatpoint     翻译:Linda (火龙果软件)
2568 次浏览
15次  

1. 什么是安全测试?

安全测试是软件测试不可或缺的一部分,用于发现软件应用程序中的弱点、风险或威胁,并帮助我们阻止来自外部人员的讨厌攻击,并确保软件应用程序的安全性。

安全测试的主要目标是找到应用程序的所有潜在歧义和漏洞,以便软件不会停止工作。如果我们执行安全测试,那么它可以帮助我们识别所有可能的安全威胁,并帮助程序员修复这些错误。

这是一个测试程序,用于定义数据将是安全的,并继续软件的工作流程。

2. 安全测试原则

在这里,我们将讨论安全测试的以下方面:

  • 可用性
  • 完整性
  • 授权
  • 保密性
  • 身份验证
  • 不可否认性

可用性

在这种情况下,数据必须由官方人员保留,并且他们还保证数据和报表服务随时可供我们使用。

完整性

在这种情况下,我们将保护那些被非官方人员更改的数据。完整性的主要目标是允许接收器控制系统提供的数据。

完整性系统经常使用一些类似的基本方法作为保密结构。尽管如此,它们通常包括用于创建算法检查源的通信数据,而不是加密所有通信。并验证正确的数据是否从一个应用程序传送到另一个应用程序。

授权

这是定义允许客户端执行操作并接收服务的过程。授权的示例是访问控制。

保密性

这是一个安全过程,可以延长外部人员的数据泄漏,因为这是我们可以确保数据安全的唯一方法。

身份验证

身份验证过程包括确认一个人的个性,追踪允许访问私人信息或系统所必需的产品来源。

不可否认性

它被用作对数字安全的引用,它是一种保证消息发送者不能不同意发送消息并且收件人不能否认已收到消息的方式。

不可否认性用于确保声称发送和接收消息的人已发送和接收所传达的消息。

3. 安全测试的关键领域

在对 Web 应用程序执行安全测试时,我们需要专注于以下方面来测试应用程序:

系统软件安全

在此,我们将根据操作系统、数据库系统等不同软件评估应用程序的漏洞。

网络安全

在此,我们将检查网络结构的弱点,例如政策和资源。

服务器端应用程序安全性

我们将进行服务器端应用程序安全,以确保服务器加密及其工具足以保护软件免受任何干扰。

客户端应用程序安全性

在这种情况下,我们将确保任何入侵者无法在客户使用的任何浏览器或任何工具上运行。

4. 安全测试的类型

根据开源安全测试技术,我们有不同类型的安全测试,如下所示:

  • 安全扫描
  • 风险评估
  • 漏洞扫描
  • 渗透测试
  • 安全审计
  • 道德黑客攻击
  • 姿势评估

安全扫描

可以对自动化测试和手动测试进行安全扫描。此扫描将用于查找基于 Web 的应用程序、网站、网络或文件系统中的漏洞或不需要的文件修改。之后,它将提供有助于我们减少这些威胁的结果。这些系统需要进行安全扫描,这取决于它们使用的结构。

风险评估

为了降低申请的风险,我们将进行风险评估。在此,我们将探讨可以在关联中检测到的安全风险。风险可以进一步分为三个部分,即高、中和低。风险评估过程的主要目的是评估漏洞并控制重大威胁。

漏洞扫描

它是一个应用程序,用于确定和生成包含与网络相关的台式机,服务器,笔记本电脑,虚拟机,打印机,交换机和防火墙的所有系统的列表。漏洞扫描可以通过自动化应用程序执行,还可以识别已确认安全漏洞的软件和系统。

渗透测试

渗透测试是一种安全实现,其中网络安全专业人员试图识别和利用计算机系统中的弱点。该测试的主要目的是模拟爆发,并找到系统中的漏洞,并同样地避免可以获利的入侵者。

安全审计

安全审核是评估组织安全措施的结构化方法。在此,我们将对应用程序和控制系统进行内部审查,以发现安全故障。

道德黑客攻击

道德黑客用于发现系统中的弱点,并帮助组织在讨厌的黑客暴露这些安全漏洞之前修复这些漏洞。道德黑客将帮助我们提高协会的安全地位,因为有时道德黑客使用与讨厌的黑客相同的技巧、工具和技术,但要得到官方人员的批准。

道德黑客攻击的目的是增强安全性并保护系统免受恶意用户的攻击。

姿势评估

它是道德黑客攻击、风险评估和安全扫描的组合,有助于我们展示组织的完整安全态势。

5. 我们如何执行安全测试

安全测试需要在软件开发生命周期的初始阶段进行,因为如果我们在软件执行阶段和SDLC的部署阶段之后进行安全测试,这将花费我们更多。

现在让我们了解如何在软件开发生命周期(SDLC)的每个阶段并行执行安全测试。

步骤1

SDLC:需求阶段

安全程序:在SDLC的需求阶段,我们将对业务需求进行安全分析,并验证哪些情况是操纵和浪费的。

步骤2

SDLC:设计阶段

安全程序:在SDLC的设计阶段,我们将对设计的风险探索进行安全测试,并在制定测试计划时进行安全测试。

步骤3

SDLC:开发或编码阶段

安全程序:在SDLC的编码阶段,我们将执行白盒测试以及静态和动态测试。

步骤4

SDLC:测试(功能测试、集成测试、系统测试)阶段

安全程序:在SDLC的测试阶段,我们将进行一轮漏洞扫描和黑盒测试。

步骤 5

SDLC:实施阶段

安全程序:在SDLC的实施阶段,我们将再次执行漏洞扫描,并执行一轮渗透测试。

步骤 6

SDLC:维护阶段

安全程序:在SDLC的维护阶段,我们将对影响区域进行影响分析。

测试计划应包含以下内容:

  • 测试数据应链接到安全测试。
  • 对于安全测试,我们需要测试工具。
  • 借助各种安全工具,我们可以分析多个测试输出。
  • 编写依赖于安全目的的测试方案或测试用例。

6. 安全测试示例

通常,安全测试的类型包括基于过度思考的问题步骤,但有时简单的测试将帮助我们发现最重要的安全威胁。

让我们看一个示例来了解我们如何在 Web 应用程序上进行安全测试:

  • 首先,登录到 Web 应用程序。
  • 然后注销 Web 应用程序。
  • 然后单击浏览器的“后退”按钮以验证它是否要求我们再次登录,或者我们已经登录了应用程序。

7. 为什么安全测试对 Web 应用程序至关重要

目前,Web应用程序与日俱增,大多数Web应用程序都处于危险之中。在这里,我们将讨论Web应用程序的一些常见弱点。

  • 客户端攻击
  • 身份验证
  • 授权
  • 命令执行
  • 逻辑攻击
  • 信息披露

客户端攻击

客户端攻击意味着在 Web 应用程序中发生外部代码的某些非法实现。并且数据欺骗操作占据了用户认为作用在Web应用程序上的特定数据是有效的,并且它不是来自外部来源的地方。

请注意: 在这里,欺骗是创建重复网站或电子邮件的技巧。

 

身份验证

在这种情况下,身份验证将涵盖旨在验证用户身份的Web应用程序方法的爆发,其中用户帐户的个性将被窃取。不完整的身份验证将允许攻击者访问功能或敏感数据,而无需执行正确的身份验证。

例如,暴力攻击(暴力攻击的主要目的)是获取对 Web 应用程序的访问权限。在这里,入侵者将反复尝试n个用户名和密码,直到它进入,因为这是阻止暴力攻击的最精确方法。

毕竟,一旦他们尝试所有定义的错误密码,该帐户将自动锁定。

授权

每当一些入侵者试图非法从 Web 应用程序中检索敏感信息时,授权就会出现。

例如,授权的一个完美示例是目录扫描。在这里,目录扫描是一种将缺陷带入Web服务器的爆发,以实现对公共区域中未提及的文件夹和文件的非法访问。

一旦入侵者成功获得访问权限,他们就可以下载敏感数据并在服务器上安装有害软件。

命令执行

当恶意攻击者控制 Web 应用程序时,将使用命令执行。

逻辑攻击

当 DoS(拒绝服务)爆发时,将使用逻辑攻击,避免 Web 应用程序帮助常规客户操作,并限制应用程序的使用。

信息披露

信息披露用于向入侵者显示敏感数据,这意味着它将涵盖计划获取有关Web应用程序的精确信息的回合。在这里,当Web应用程序泄露敏感数据时,就会发生信息泄漏,例如错误消息或开发人员评论,这些评论可能会帮助攻击者滥用系统。

例如,密码正在传递到服务器,这意味着密码在通过网络通信时应进行编码。

注意:

Web 应用程序需要更多有关其访问的安全性以及数据安全性;这就是为什么Web开发人员将以这样的方式制作应用程序来保护应用程序免受暴力攻击,SQL注入,会话管理,无法限制URL访问和跨站点脚本(XSS)的原因。而且,如果 Web 应用程序简化了远程访问点,那么它也必须受到保护。

在这里,会话管理:它用于检查cookie是否可以在登录阶段在另一个计算机系统中重复使用。

SQL注入:这是一种代码注入方法,其中破坏性的 SQL 语句被植入到某些查询中,并由服务器实现。

跨站点脚本 (XSS):这是用户在 Web 应用程序的用户界面中引入客户端脚本或 HTML 的技术,并且这些添加的内容对其他用户可见。

8. 安全测试的神话和事实

在这里,我们将讨论安全测试的神话和事实:

9. 安全测试工具

我们市场上有各种安全测试工具,如下:

  • SonarQube
  • ZAP
  • Netsparker
  • Arachni
  • IronWASP

10. 结论

对于应用程序或软件,有必要执行安全测试以验证敏感信息是否仍然是私有的。在软件测试中,安全测试是必不可少的,因为它可以帮助我们最终保存必要的数据。在这种情况下,测试工程师将充当入侵者并测试系统或检测安全缺陷。

 

 

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



2568 次浏览
15次