51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1375|回复: 0
打印 上一主题 下一主题

[原创] 单元测试与系统安全规约

[复制链接]
  • TA的每日心情
    擦汗
    2 小时前
  • 签到天数: 1026 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-12-23 14:12:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
           一、单元测试
      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实现限流、熔断,流量监控,从而达到限流的目的。



    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-29 11:32 , Processed in 0.094043 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表