开课吧孤尽T31训练营学习笔记-DAY26-系统安全规约

367 阅读2分钟

系统安全规约实践

一、 权限控制

1.1 越权访问漏洞

什么是越权访问

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

这个图直接截图老师ppt中的,还是很能说明问题

image.png

防范措施

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

水平越权访问漏洞

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

image.png

水平越权防范错误

使用mybatis插件机制,加入数据权限,一般是根据部门来做隔离。实例代码,暂时截图老师的:

image.png

二、 敏感数据处理规约

手机号等信息,被其他人获取到,一般是数据库中,或者日志中被搞走。

脱敏方式一般有:显示脱敏,日志脱敏和存储脱敏,接下一一讲一下具体怎么做到。

2.1 显示脱敏

一般是手机号,可以定义json数据转换器的规则。

2.2 日志脱敏

定义logback的日志脱敏规则转换器。

2.3 数据存取加密

结合MyBatis原理,方案是编写拦截器,处理Parameterhandler和ResultHandler。

image.png

2.4 数据传输加密

编写servlet filter, 注入到过滤器链中。

三、 SQL注入问题

3.1 直接$拼接场景

问题代码:

image.png

正确写法:

image.png

3.2 in参数

问题代码:

image.png

正确写法:

image.png

3.3 order写法

image.png

四、跨站点攻击XSS

用实例解释一个XSS,如果微博没有做相关XSS防御,我可以发一个帖子,里面带上一些脚本;只要有人看到我发的帖子,这个脚本就会执行。

这样我可以去分析用脚本怎么去拿微博登录用户的一些信息,这样就看我脚本的水平了。

防御XSS攻击,主要是通过servlet过滤器等,将一些脚本类的标志给转码显示。

五、重放攻击

这个作为一个专题后续分享,单独来写。还会包含Sentinel的使用实例。