权限控制

越权访问漏洞

越权访问(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

孤尽班第22天 -- 系统安全规约相关推荐

  1. 2021.11.16 孤尽训练营D22——单元测试与系统安全规约

    认识单元测试 单元测试是对软件组成单元进行的测试.其目的时检验软件基本组成单位的正确性.测试对象时软件设计的最小单元:模块,又称为模块测试. 单元测试的AIR原则 A:自动化地关闭.开启单元测试 I: ...

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

    单元测试 1.1单元测试定义 单元测试是对软件组成单元进行的测试,其目的是检验基本单元的正确性.单元测试对象是软件设计的最小单元称为模块,所以又叫模块测试. 整个测试阶段分为单元测试.集成测试.系统测 ...

  3. 《孤尽班T31-01-架构理论笔记》

    孤尽,阿里巴巴技术大拿,开课吧CTO 当初得知孤尽大大会组建一个"Java学习班"的 时候,就期待能够加入其中,学一些"够牛B"的技术,从最开始的差不多600人 ...

  4. 《孤尽班T31-05-技术架构选型笔记》

    <孤尽班T31-05-技术架构选型笔记> T31项目 文章目录 <孤尽班T31-05-技术架构选型笔记> 1. 关于技术选型 1.1 为什么要啊进行技术选型? 1.2 微服务架 ...

  5. ASP.NET典型三层架构企业级医药行业ERP系统实战(8大模块22个子系统)

    课程学习地址:http://***/goods.php?id=180 课程说明: 国内首部完整讲述ERP系统架构.业务逻辑.开发的项目实战课程.考虑到本系统的庞大及复杂性.本课程购买学员每人赠送一个U ...

  6. ubuntu 22.04 系统下载

    简介:本次小编需要安装的版本是 [ ubuntu-22.04.1-desktop-amd64.iso ] 由于在官网中下载速度过慢,这里选择在 清华大学开源网站镜像站下载 网址:清华大学开源软件镜像站 ...

  7. 【记录】在win10系统上安装ubuntu(乌班图)双系统

    在win10系统上安装Ubuntu(乌班图)双系统 先说一下Ubuntu系统的优势: ubuntu就是为个人用户打造的系统 桌面特效很炫 运行计算很快 没病毒(linux下的病毒个人电脑是碰不到的) ...

  8. 华恩JAVA班第22天

    华恩JAVA班第22天 package com.zjj; public abstract class Shape {  private String name;    public Shape(Str ...

  9. 新高考3+3模式(6选3)全走班自动排课系统7.0(正式版)

    一.软件使用方法与步骤 1.使用软件根据学生选课人数与分班成绩进行智能自动分班 (1)整理学生选课信息与分班成绩将其导入到<A组分班>或<B组分班>工作表中    走班制上课时 ...

最新文章

  1. zabbix4.0构建实录
  2. Android 更新项目名称
  3. 加载静态文件,父模板的继承和扩展(2017.11.3)
  4. 中判断字符串是否为空_leetcode1704_go_判断字符串的两半是否相似
  5. Linux 实例常用内核网络参数介绍与常见问题处理
  6. (JAVA)线程之lock和死锁(例)
  7. 修改GDAL库支持IRSP6数据
  8. 批量替换文件字体,简体-繁体
  9. matlab 地址中有变量,在matlab中符号变量
  10. css防爆电机,防爆马达
  11. My Sixty-Second Page - 斐波那契数列 - By Nicolas
  12. 如何推广自己的新网站
  13. git core.autocrlf配置说明
  14. 手动删除oracle数据库
  15. 《东周列国志》第七十四回 囊瓦惧谤诛无极 要离贪名刺庆忌
  16. python如何实现接口?
  17. 华为云虚拟服务器,云服务器是虚拟主机
  18. Mil代码编程的基本概述
  19. 运行JS脚本的几种方式
  20. 无能狂怒之@RequestParam、@PathParam、@PathVariable三者有什么区别我都不知道!

热门文章

  1. pands 画图 调整大小_关于cad画图比例,图纸比例,打印比例问题详解
  2. sql语句练习题,答案
  3. php中escape和unescape
  4. 数据库查询之条件排序
  5. 前端上传图片到七牛云
  6. 10倍双目望远镜系统设计
  7. 项目实训(十六)——总结
  8. 自定义博客的背景图片
  9. 转载:渗透测试方法论(阅读)
  10. macbook pro 用 DP 接口外接显示器系统音量不可用