前言

现在是大数据的时代,数据是非常重要的,一张照片就有可能泄漏了你的位置信息。在我们的系统中,安全一直是老生常谈的话题,怎么维护我们的系统安全,在我们日常开发中,怎么避免出现安全问题,我们跟着Joel老师继续学习系统安全规约。

权限控制之越权访问漏洞

越权访问(Broken Access Control,简称 BAC)

        是web程序中一种常见的漏洞,由于其存在范围广、危害大,被 OWASP 列为Web应用十大安全隐患第二名。

垂直越权访问:

拥有了不属于他的系统权限,比如普通用户拥有了系统管理员的权限,b比如修改金额

水平越权访问:

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

越权访问漏洞防范措施

  • 前后端同时对用户输入信息进行校验,双重验证机制
  • 调用功能前,验证用户是否有权限调用相关功能
  • 执行关键操作时必须验证用户身份,验证用户是否具备操作数据的权限
  • 直接对象引用的资源id要加密,防止攻击者枚举攻击id,敏感数据特殊化处理
  • 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤

敏感数据处理规约

敏感数据处理:

特殊信息授权   => 特殊信息脱敏  => 特殊信息加密存取 => 特殊信息加密传输

信息脱敏

是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户等个人信息都需要进行数据脱敏

数据脱敏原则

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

SQL注入常用防御手段:

  • 过滤危险字符
  • 使用预编译语句 :JDBC、 PrepareStatement
  • 参数化查询:Hibernate、Mybatis
  • Mybatis框架SQL注入漏洞场景

使用 $ 直接拼接

#{}是预编译处理,MyBatis在处理#{ }时,它会将sql中的#{ }替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号

${} 是字符串替换,在处理是字符串替换,MyBatis在处理时,它会将sql中的{ }替换为变量的值,传入的数据不会加两边加上单引号。

select *
from user
where id = ${id}

如果 id = 1 or 1=1 则

select *
from user
where id = 1 or 1 =1

条件永真,所以应该使用 #

select *
from user
where id = #{id}

模糊查询like后的参数$

select *
from user
where name like '%${name}%'

name = ' or 1 =1

select *
from user
where name like '%' or '1=1 %' 

正确写法

1、在代码里拼接 %%
name = "%" + "123" + "%"select *
from user
where name like #{name}2、使用concat
select *
from user
where name like concat('%',#{name},'%')

in 之后的参数$

一样会因为拼接导致SQL永真,正确使用方法使用 foreach

order by 之后$ 同理

其他常见完全问题

XSS跨站点脚本攻击及其防御

在连接中注入恶意代码

  • 输入过滤单引号,双引号,<>等
  • 编码转换:Html实体编码、JavaScript编码
  • Cookie安全策略:HttpOnly

重放攻击

接口重复调用

  • 使用Sentinel 实现API防刷

锲而舍之朽木不舍,锲而不舍,金石可镂。

参考文档:Joel老师的ppt

孤尽训练营打卡日记day24--系统安全规约相关推荐

  1. 孤尽训练营打卡日记day28--第四周总结

    前言 光阴似箭,日月如梭.转眼已经过去了一个月,孤尽训练营第四周也已经结束,今天我们一起来对这一周的内容做个简单回顾. 第一次课 单元测试和系统安全规约 什么是单元测试? 对软件组成单元进行的测试,其 ...

  2. 孤尽训练营打卡日记day14--第二周总结

    前言 光阴似箭,日月如梭!跟着孤尽老师学习的第二周也即将结束,训练营的日子也已经过去了一半.古人云,学而不思则罔,思而不学则殆.今天我们来对第二周的学习做个总结. 内容回顾 day08 首先,孤尽老师 ...

  3. 孤尽训练营打卡日记day04--MySQL优化

    前言 数据库在系统中是非常重要的一环,当数据量大的时候,数据库就会有瓶颈,也就是查询变慢,我们需要对数据库进行优化 建表时优化 Schema 和数据类型优化 整数 TinyInt,SmallInt,M ...

  4. 孤尽训练营打卡日记day19--OAuth2基础

    前言 我们现在的系统架构都是微服务的架构,也就是说,一个完整的功能,是由后台多个工程一起完成的.那么就会有一个问题,明明是多个工程,但是我们只需要登录一次,这是怎么实现的呢?今天我们跟着刘雪松老师一起 ...

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

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

  6. esp8266单片机透传_基于WeMos D1(ESP8266)的校园卡门禁系统

    刷卡https://www.zhihu.com/video/1107591334902345728 电脑端控制https://www.zhihu.com/video/11075913630797332 ...

  7. python tk combobox设置值为空_Python编程从入门到实践日记Day24

    Python编程从入门到实践日记Day24 第6章 用户输入和while循环(五) 1. 使用while循环来处理列表和字典(二) - 删除包含特定值的所有列表元素 在之前我们学过可以使用函数remo ...

  8. 利用油猴脚本显示扇贝网真实打卡日记

    本文首发在我的个人博客:https://jlice.top/p/7kmxm/.欢迎大家前去参观,么么哒~ 前一段时间发现扇贝网页版显示的打卡日记和手机上看到的不一致,感觉应该是网页版开发滞后的原因.这 ...

  9. 苹果手机软件升级密码_安卓系统用久了会卡,苹果系统就能一直流畅?

    这么多年以来,无数人问过我这个问题,刚开始我试图用一些偏专业的方式解释,但是结果证明,效果并不好. 诚然,对于那部分朋友来讲,应用审查机制.消息推送机制和伪后台,这些专业名词理解起来,难度确实非常大. ...

最新文章

  1. 浅显易懂 Makefile 入门 (03)— 目标文件搜索(VPATH 和 vpath 的区别和使用)、隐含规则
  2. Mac Os 基本命令行
  3. vue工程全局设置ajax的等待动效
  4. 多线程与高并发(六):线程池可用的各种高并发容器详解:CopyOnWriteList,BlockingQueue等
  5. php mysql 查询时间_PHP-MySQL查询需要大量时间才能执行
  6. python字典的建立和输出_字典的创建和使用
  7. r语言读取excel数据_R语言 | 更快的表格文件读取方法!
  8. Linux系统中的用户管理(一)
  9. python在知名公司的应用
  10. edge浏览器卸载不掉_【喂你播】华为申请 “荣耀”啤酒饮料类商标;微软确认Edge浏览器无法卸载...
  11. Qt_ERRO Rundefined reference to `vtable for XXX'
  12. Smart 3D 切块合并 使用S3C索引 excel表格法
  13. [安卓按键精灵]彩色图片转黑白图(二值化)
  14. 【课程】07 河口水循环
  15. 视觉SLAM十四讲学习第二部分(ch7-ch14)
  16. excel切片器_利用切片器制作动态交互图表
  17. Python Scarpy Crawl Dmoz Settings
  18. 二项分布的期望和方差
  19. Python常用基础语法知识点大全
  20. 企业管理软件开发XP

热门文章

  1. margin:auto 与 margin:0 auto 区别
  2. D1net阅闻:中国联通、中信银行相继涉足金融云
  3. 【小沐学Unity3d】Unity插件之天气系统UniStorm
  4. vivo AI计算平台 Kubernetes集群Ingress网关实践
  5. 老婆永远都是对的.......
  6. 运动防水耳机哪个牌子好?防汗运动耳机推荐
  7. 生成式对抗网络(GAN)资源
  8. C语言的文件的写入------C语言
  9. URAL 1181 Cutting a Painted Polygon(解题报告)
  10. 看了几个NHK的记录片