单元测试与系统安全规约

发表于:2021-12-07 09:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:小源搬砖ing    来源:稀土掘金

  一、单元测试
  1.软件测试
  指通过手工或者工具对被测对象进行测试操作,以此来验证实际结果和预期之间是否存在差异。
  2. 研发与测试周期的W模型
  3.单元测试
  单元测试是对软件组成单元进行的测试。其目的就是检验软件基本组成单位的正确性。测试对象是软件设计的最小单元-模块。又被称之为模块测试。
  单元测试的好处:
  - 提高软件质量
  - 促进代码优化
  - 提升研发效率
  项目问题的解决成本随着项目的进展越来越昂贵,单元测试成本 < 集成测试 < 系统测试
  4.单元测试的AIR原则
  单元测试应该保证如下原则:
  ·A(Automatic):自动化。单测是支持自动执行的
  · I(Independent):独立性。单侧不影响项目的实体逻辑
  · R(Repeatable):可重复性。单侧在某种程度上可以复用
  5.单侧的BCDE原则
  · B(Border):边界值测试。包含在测试域的测试点叫做内点,处在边界的叫做上点,不在测试域的叫做离点
  · C(Correct):正确的输入,并得到预期的结果
  · D(Design):与设计文档相结合
  · E(Error):证明程序有错
  6.常用的单元测试框架
  · Junit: 一个开发源代码的Java测试框架,用于编写和运行可重复的测试。
  · Mockito:一个Mock工具,用于模拟各种对象和组件,模拟函数返回值,模拟void类型的异常。
  · Spring-test:集成各种测试框架的组合框架。
  · Hamcrest:一个测试框架,提供了一整套通用的匹配符Matcher。
  · JSONassert:一个专门用户json断言的工具
  二、 系统安全规约
  1.权限控制
  · 越权访问漏洞
  越权访问(Broken Access Controller,简称BAC)是web应用程序中常见的一种漏洞,存在范围光,危害大,被OWASP列为web应用十大安全隐患的第二名。
  越权访问氛围垂直的不同权限访问,也分为水平的相同权限的不同人员之间的访问。
  水平越权访问:是一种基于数据的访问权限控制设计缺陷引起的漏洞,由于服务器端在接收到请求数据进行操作时,没有判断数据的所属人/所属部门从而导致的越权数据访问漏洞。
  越权访问的防范措施:
  前后端同事对用户输入的信息进行校验,双重校验机制
  调用功能前,验证用户是否有权限调用相关功能
  执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
  直接对象引用的资源ID要加密,防止功能者枚举ID,敏感数据特殊化处理
  永远不要相信来自用户的输入,对于可控的参数进行严格的检查与过滤
  2.敏感数据的处理
  · 敏感数据要遵循如下处理:
  1) 特殊信息需要授权才能访问
  2) 特殊信息脱敏,脱敏的重要原则为
    - 保持原有数据特征
    - 保持数据之间的一致性
    - 保持业务规则的关联性
    - 多次脱敏之间的数据一致性
  3) 特殊信息加密存取:通过编写拦截器来实现特殊信息的加密操作。
  4) 特殊信息加密传输:通过编写拦截器来实现特殊信息的加密传输操作。
  3.SQL注入攻击
  通过把SQL命令插入到Web表单递交或者输入域名或页面请求的查询字符串,最终达到七篇服务器执行恶意的SQL命令。动态生成sql语句时没有对用户输入的数据进行校验是Sql注入攻击得逞的主要原因。
  Mybatis框架SQL注入漏洞的场景:
  · 使用$符直接拼接
  · 模糊查询like后的参数
  · in之后的参数
  · order by之后
  常用防御手段:
  · 过滤危险字符
  · 使用预编译语句JDBC PrepareStatement
  · 参数化查询:Hibernate、Mybatis
  4.XSS跨站点脚本攻击及其防御
  XSS跨站脚本攻击(Cross Site Scripting)主要发生在客户端,可被用于窃取隐私,钓鱼欺骗,偷取密码。传播恶意代码等攻击行为
  防御规则:
  · 输入过滤:单引号、双引号、<、>等
  · 编码转换:HTML实体编码,JavaScripe编码
  · Cookie安全策略,HttpOnly
  · 后端可以通过配置XSS过滤器针对于所有的入参进行转换
  5.防御重放攻击
  接口未作任务校验,导致接口持续被刷,从而导致遭受损失。
  解决:
  · 接口添加时间戳校验,超过有效时间的请求即视为异常请求,不予处理。
  · 接入Sentinel实现限流、熔断,流量监控,从而达到限流的目的。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号