认识单元测试
单元测试是对软件组成单元进行的测试。其目的时检验软件基本组成单位的正确性。测试对象时软件设计的最小单元:模块,又称为模块测试。
单元测试的AIR原则
- ?A:自动化地关闭、开启单元测试
- I:每个模块都没有相互的依赖
- R:如果没有代码的修改、或者功能的添加删除,则该单元测试代码可在后续测试重复利用
单元测试编写的BCDE原则
- B:Border 边界值测试
- C:Correct 正确的输入,并得到预期的结果
- D:Design 与设计文档相结合
- E:Error 证明程序有错
功能性测试之边界值测试
1、边界点定义
?
2、边界值分析
常用单元测试框架简介
系统安全规约
权限控制之越权访问漏洞
越权访问,简称BAC,被OWASP列为Web应用十大安全隐患第二名
越权访问漏洞防范措施
- 前后端同时对用户输入信息进行校验,双重验证机制
- 调用功能前,验证用户是否有权限调用相关功能
- 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
- 直接对象引用的资源ID要加密,防止攻击者枚举ID,敏感数据特殊化处理
- 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤?
水平越权访问漏洞
是一种“基于数据的访问控制”设计缺陷引起的漏洞
由于服务器端在接收到请求数据进行操作时,没有判断数据的所属人、所属部门而导致的越权数据访问漏洞
防御:增加拦截并对sql语句进行处理
敏感数据处理规约
特殊信息授权、特殊信息脱敏、特殊信息加密存取、特殊信息加密传输
数据脱敏是“指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号等个人信息都需要进行数据脱敏。
数据脱敏重要原则:
- 保持原有数据特征
- 保持数据之间的一致性
- 保持业务规则的关联性
- 多次脱敏之间的数据一致性
SQL注入攻击防御
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令
防御手段:
- 过滤危险字符
- 使用预编译语句:JDBC PrepareStatement
SQL注入漏洞场景:
使用$直接拼接;模糊查询like后的参数;in之后的参数
?XSS防御:
输入过滤:过滤<、>、!等
编码转换:HTML实体编码、JS编码
Cookie安全策略:HttpOnly
|