孤尽T31之单元测试与系统安全规约

  • 单元测试

1.1单元测试定义

       单元测试是对软件组成单元进行的测试,其目的是检验基本单元的正确性。单元测试对象是软件设计的最小单元称为模块,所以又叫模块测试。

整个测试阶段分为单元测试、集成测试、系统测试三步骤,其范围从小到大。

1.2单元测试的原则

原则一:AIR原则

       本原则是指可重复性(Repeatable)、独立性(Independent)、自动化(Automatic)

原则二:BCDE原则

指测试满足B(Border)边界测试;

C:Correct正确的输入,得到预期的结果;

D:Design与设计文档相结合

E:Error证明程序有错

边界值测试

       需要先定义边界点和边界值,其中在边界上的称为上点,在区域范围之内的为内点;在边界之外的为离点。

1.3常用的单元测试框架

maven构建单元测试

       maven使用插件来实现单元测试执行,可以配置对应执行哪些,不执行哪些。

并且Jacoco插件可以统计代码测试覆盖率统计。

  • 系统安全规约

2.1权限控制

       越权访问漏洞

       越权访问(Broken Access Control,简称BAC),是web应用程序中一种常见的漏洞,由于其存在范围广、危害大,被OWASP列为web应用十大安全隐患的第二名。

根据越权的方向可分为垂直越权和水平越权。

       越权访问漏洞防范措施

       包括有1.前后端同时对用户输入信息进行校验,双重校验机制

       调用功能前,验证用户是否有权限调用相关功能

       水平越权是一种“基于数据的访问控制”设计缺陷引起的漏洞。

由于服务器端收到请求数据进行操作时,没有判定的数据的所属人/部门而导致的水平越权。

       所以需要对比较敏感数据进行数据操作范围进行控制。

       使用一个数据拦截器DataScopeInterceptor

定义一个DataScope 来设置控制数据控制范围的字段信息。通过拦截原始sql,在基础上包装为新的sql来执行,这样来防止水平越权。

2.2敏感数据处理规约

       敏感信息处理

敏感信息脱敏

       脱敏的重要原则

       脱敏时需要保持原有数据特征、保持数据之间的一致性、保持业务规则的关联性、多次脱敏之间的数据一致性。

敏感数据脱敏之日志脱敏

       日志进行脱敏时使用指定日志转换器,配置在logback-spring.xml

在转换器内定义转换规则,包括匹配规则,转换规则定义。

敏感数据存储与获取加密

       一种处理方案是:存储的时候可以在mybatis中的paramterHandle以及ResultHandler处理器中增加拦截器处理。

另外一种方案是在JDBC的ResultSet对象进行拦截器进行加密、解密来实现数据脱

敏。

实现案例:

       基于sql的加密拦截器

      

获取到数据字段时进行匹配是否为敏感字段,如果是进行加密处理

SQL注入攻击

       SQl注入攻击是通过sql命令插入到web表单提交或者输入域名或者页面请求的查询字符串,最终达到欺骗服务器。

mybatis框架sql注入

       在使用$时可能会被注入攻击,必须使用#防止

在in之后的参数不管使用$还是#都可能存在,必须使用分离

XSS跨站点脚本攻击

       XSS跨站脚本攻击()发生在客户端,可被用户进行隐私,钓鱼欺骗,偷取密码,传播恶意代码等行为。

后端应用防备XSS攻击

       编写过滤器来防止攻击,对请求参数、json进行过滤处理,这样防止XSS攻击。

重放攻击案例:短信服务接口未做防重功能,造成用户持续手段短信。

防重处理:可以增加时间戳节点、一次性编码,可以将相关的参数进行hash编码后进行防止重复。

比较稳妥的办法是:增加时间戳+hash一次性有效性来防止重复

使用Sentinel实现API接口防止刷

包括使用限流、熔断等来防止

熔断

关键资源防刷流程

判定是否为关键资源

获取风控等级,高等级时进行提升验证码进行风控防刷处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值