08 2021 档案
摘要:微服务建构之分布式事务 简介:分布式事务介绍和产生原因 什么是分布式事务 事务 事务指的就是一个操作单元,在这个操作单元中的所有操作最终要保持一致的行为,要么所有操作都成功,要么所有的操作都被撤销 分两种: 一个是本地事务:本地事物其实可以认为是数据库提供的事务机 一个是分布式事务 分布式事务 指事
阅读全文
摘要:使用Mybatis-plus多租户解决越权问题 背景 权限校验完毕后,还需要解决水平越权问题,使用MyBatis-plus中的多租户拦截器可以轻松解决。 文档地址:https://mp.baomidou.com/guide/interceptor-tenant-line.html#tenantlin
阅读全文
摘要:常用测试工具对比 LoadRunner 性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多 Apache AB(单接口压测最方便) 模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载,
阅读全文
摘要:水平-垂直越权攻击 越权攻击介绍 是Web应用程序中一种常见的漏洞,由于其存在范围广、危害大, 列为Web应用十大安全隐患的第二名 指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限. 产生原因:主要是因为开发人员在对数据进行增、
阅读全文
摘要:核心知识-ThreadLocal介绍+经典应用场景 什么是ThreadLocal 全称thread local variable(线程局部变量)功用非常简单,使用场合主要解决多线程中数据因并发产生不一致问题。 ThreadLocal为每一个线程都提供了变量的副本,使得每个线程在某时间访问到的并不是同
阅读全文
摘要:JWT令牌token泄露恶意使用 背景 为了防止黑客恶意拦截获得token信息,在JWT上可以添加客户端属性、地理网络信息等。 解密:使用互联网大厂的产品时经常遇到这个情况 比如阿里云或者淘宝,你现在登录了然后换个网络或者地域就需要重新登录 就是对应的token令牌,不只简单的算法加密,还包括了客户
阅读全文
摘要:自动刷新JWT解决方案 背景 在前后分离场景下,越来越多的项目使用jwt token作为接口的安全机制,但存在jwt过期后,用户无法直接感知,假如在用户操作页面期间,突然提示登录,则体验很不友好,所以就有了token自动刷新需求 但是这个自动刷新方案,基本都离不开服务端状态存储,JWT推出思想是:去
阅读全文
摘要:自动刷新JWT解决方案 背景 在前后分离场景下,越来越多的项目使用jwt token作为接口的安全机制,但存在jwt过期后,用户无法直接感知,假如在用户操作页面期间,突然提示登录,则体验很不友好,所以就有了token自动刷新需求 但是这个自动刷新方案,基本都离不开服务端状态存储,JWT推出思想是:去
阅读全文
摘要:登录简单业务 简介 不管是B端还是C端业务,都是需要登录操作的。 其重要性是显而易见的。 简单登录业务逻辑 输入账号密码登录 校验验证码(业务是否需要) 校验账号数据库是否存在 校验密码是否正确 返回token 编码 密码是经过MD5加盐,防止彩虹表暴力破解。 /** * 用户登录方法 * 1.根据
阅读全文
摘要:滑动窗口模板 简介 一般滑动窗口使用在字符串算法题上。主要用两个指针维护该滑动窗口。 模板 int left = 0, right = 0; while (right < s.size()) {` // 增⼤窗⼝ window.add(s[right]); right++; while (windo
阅读全文
摘要:注册业务中密码的业务逻辑 简介 密码在注册业务中需要进行加密,防止黑客攻击拖库直接拿到明文秘钥。 但是,现在也有彩虹表暴力破解,就是通过加密后的文本,直接检索到明文秘钥。 网站:https://www.cmd5.com/ 解决办法 密码存储常用方式 双重MD5 MD5+加盐 双重MD5+加盐 哈希加
阅读全文
摘要:图形验证码业务 简介 图形验证码是用户注册的第一步,一般用户填写邮箱或者手机号的时候,需要填图形验证码才能进行登录或者注册。 在登录层面,增加黑客尝试成本。 在注册层面,增肌黑客成本,防止邮箱邮件发送服务或者手机号验证码服务被他人恶意调用。 业务逻辑 使用kaptcha框架 使用redis缓存验证码
阅读全文
摘要:宽度优先搜索模板 简介 宽度优先搜索是一种遍历所有数据的方法,可以用在最短路径上 模板 岛屿的个数的BFS的方法 private void BFS(boolean[][] grid, boolean[][] visited, Point p) { Queue<Point> queue = new L
阅读全文
摘要:二分查找经典模板 简介 二分查找是O(log(n))时间复杂度的算法,主要思想是每次都比较中间那个数和target的区别 模板 该模板不用考虑太多细枝末节的地方,最后跟进实际情况修改循环内的数,和最后两个下标的数即可 private boolean binarySearch(int[] nums,
阅读全文
摘要:阿里云权限管理RAM介绍-玩转云产品核心知识 RAM权限介绍 阿里云用于各个产品的权限,基于RBAC模型,进行简单管理账号、统一分配权限、集中管控资源,从而建立安全、完善的资源控制体系。 众多产品,一般采用子账号进行分配权限,防止越权攻击 访问阿里云 API 的密钥,具有该账户完全的权限 使用 建立
阅读全文
摘要:阿里云权限管理RAM介绍-玩转云产品核心知识 RAM权限介绍 阿里云用于各个产品的权限,基于RBAC模型,进行简单管理账号、统一分配权限、集中管控资源,从而建立安全、完善的资源控制体系。 众多产品,一般采用子账号进行分配权限,防止越权攻击 访问阿里云 API 的密钥,具有该账户完全的权限 使用 建立
阅读全文
摘要:Spring整合邮箱验证码发送业务 简介 邮件发送的基本过程与概念 邮件服务器 :类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中 电子邮箱 :用户在邮件服务器上申请的一个账户 from:xxx@xx.com 发件人 to:xxx@xx.com 收件人
阅读全文
摘要:kaptcha验证码框架 简介 Kaptcha 框架介绍 谷歌开源的一个可高度配置的实用验证码生成工具 验证码的字体/大小/颜色 验证码内容的范围(数字,字母,中文汉字!) 验证码图片的大小,边框,边框粗细,边框颜色 验证码的干扰线 验证码的样式(鱼眼样式、3D、普通模糊) 使用 添加maven依赖
阅读全文
摘要:Linux安装docker 简介 docker 是一款容器化的平台,即将各个应用以容器化方式运行,拥有易迁移、易部署、环境独立的优点。 安装 安装docker(centOs7) #依次运行以下命令添加yum源 yum update yum install epel-release -y yum cl
阅读全文
摘要:Redis安装及使用 简介 REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内
阅读全文
摘要:Spring Test单元测试 简介 除了自测以外,还需要单元测试,单元测试是模块测试的最小单元,在Spring 中很好的封装了单元测试。 使用 引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr
阅读全文
摘要:自定义全局异常和异常处理器 自定义全局异常 用于管理业务时,抛出的异常,可以区别于常规异常。方便管理业务 /** * 全局异常处理 */ @Data public class BizException extends RuntimeException { private Integer code;
阅读全文
摘要:Swagger-UI 测试文档简单使用 简介 Swagger-UI是google的一个测试文档库,用于标注接口信息和快速测试。 只能在项目运行的时候进行使用。 在接口过多的时候会减少项目的性能 使用 pom文件引入依赖 <!--swagger ui接口文档依赖--> <dependency> <gr
阅读全文
摘要:Git简单使用 git简介 是一个版本管理工具, 其作用就是可以让你更好的管理你的程序,比如你原来提交过的内容,以后虽然修改了,但是通过git这个工具,可以把你原来提交的内容重现出来,这样对于你后来才意识到的一些错误的更改,可以进行还原 基于git协议的代码仓库 github 全球最大同性交友社区
阅读全文
摘要:Maven聚合工程简单使用 maven聚合工程创建 选择maven项目 创建成功后将父目录中的src文件夹删除 添加对应的model文件 修改父项目中的pom文件 具体例子,项目复制即可: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="
阅读全文
摘要:POJO类提效工具类Lombok lombok简介 lombok是是一款工具类,专门使用在POJO类上,简化编写流程。 lombok简单原理 lombok是通过以注解的方式编译时增强POJO类。java代码通过jvm解析器,生成对应的语法树,再通过JRE的注解解析器重新构建语法树,最后生成字节码。
阅读全文

浙公网安备 33010602011771号