孤尽班第22天 -- 系统安全规约

权限控制

越权访问漏洞

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

越权访问漏铜防范措施

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

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

3. 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限

4. 直接对象引用的资源ID要加密,防止攻击者枚举ID,敏感数据特殊化处理

5. 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤

水平越权访问漏洞

水平越权访问是一种“基于数据的访问控制”设计缺陷引起的漏洞。由于服务器端在接收到请求数据进行操作时,没有判断数据的所有人/所属部门而导致的越权数据访问漏洞。

(小声bb)在执行select语句时,如果是用户A访问数据,那么只返回在table中A可以看到的行。怎么确定哪些行A可以看到呢?这个视具体业务逻辑来定。比如,可以存储行的所有者,如果所有者是A,或者包括A,那么A就可以访问。也可以存储行的访问级别,然后和A的访问级别进行比较,如果A的级别更高或平等,就可以访问。

敏感数据处理规约

敏感数据处理

  • 特殊信息授权
  • 特殊信息脱敏(身份证号,手机号,卡号,客户)
  • 特殊信息加密存取
  • 特殊信息加密传输

数据脱敏的重要原则

  • 保持原有数据特征(原来多少位,脱敏了还得是多少位)
  • 保持数据之间的一致性(不能有的地方脱敏前三位,有的地方脱敏后三位)
  • 保持业务规则的关联性
  • 多次脱敏之间的数据一致性(不能不同场合脱敏同一个数据,结果却不一样)

脱敏方式:前端展示脱敏;日志脱敏。

加密方式:通过MyBatis的ParameterHandler和ResultHanler进行加密解密;通过Spring的Filter添加加解密的Filter。

SQL注入攻击防御

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。动态生成SQL语句时没有对用户输入的数据进行验证是SQL注入攻击得逞的主要原因。

SQL注入常用防御手段:

  • 过滤危险字符
  • 使用预编译语句:JDBC PreparedStatement
  • 参数化查询:Hibernate、Mybatis

Mybatis框架SQL注入漏洞场景

  • 使用$直接拼接
  • 模糊查询like后的参数
  • in之后的参数
  • order by之后

credit:截图均来自Joel老师的PPT

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值