1. 增加Flyway DB Migration,支持版本化管理数据库

2. 完善API安全性:权限控制,访问频率限制

3. 停用sys系列接口,如果需要使用,就要完善权限控制

4. 禁用在线表单开发功能,停用online系列接口

5. 关闭Swagger接口文档

6. 增加文件访问权限控制,可以使用OSS云存储私有链接方案

7. 修改初始化SQL设置的admin默认密码

8. 优化API调用日志,配置独立的logServer

9. 结合业务完善数据库事务管理

 



JeecgBoot低代码开发框架,基于代码生成器,快速开发企业信息应用系统。

 

开源项目:代码托管在Github和Gitee,国内用户使用Gitee下载速度较快。

系统环境:Win10/UbuntuJDK8,mavennodedocker。

依赖服务:Docker,MySQL8,Redis5

 image.png

 

1. Flyway DB Migration,支持版本化管理数据库

JeecgBoot提供了初始化SQL脚本,然而在实际项目中,经常需要新增数据表,或者对已有数据表进行调整,比如增加提现密码。

 

此时不可避免的需要对SQL脚本进行管理,推荐使用Flyway,SpringBoot集成起来非常便捷。

 

1) Pom.xml增加依赖:

image.png 

 

2) Application.yml增加配置:

image.png 

3) resources目录下增加SQL脚本:

 image.png

 

2. 完善API安全性:权限控制,访问频率限制

JeecgBoot框架没有对API增加完善的权限控制,比如读取用户信息、部门信息,也没有增加访问频率控制。

 

增加修饰符@AccessLimited,配置拦截器,统一完善API安全机制。

image.png 

 

3. 停用sys系列接口,如果需要使用,就要完善权限控制

JeecgBoot为后台管理系统提供了丰富的接口,可以操作所有数据表,功能强大。如果在生产环境中继续使用这些接口,那么就需要完善权限控制,实现方法可以参考上一节。

 image.png

 

4. 禁用在线表单开发功能,停用online系列接口

JeecgBoot提供的在线表单开发功能非常强大实用,然而在部署生产环境时,一定不要忘记屏蔽,否则扒库、删库都不在话下,看你的运气了。

image.png 

 

5. 关闭Swagger接口文档

只需要在配置文件中改动一点,就不至于把所有接口公布于众了。

image.png image.png

 

 

6. 增加文件访问权限控制,可以使用OSS云存储私有链接方案

JeecgBoot提供的文件访问路径,并没有增加权限控制,所以需要结合实际存储方式,叠加权限实现方案。

 

羚驾科技业务系统使用阿里云OSS存储文件,请求接口时,判断是否满足权限要求,然后生成临时地址,并且设置有效期。

 image.png

 

7. 修改初始化SQL设置admin默密码

运行初始化SQL脚本后,超级管理员默认密码123456,别忘记改了,事情虽小,影响却大。

 

在初始化SQL脚本基础上,增加一个修改密码的脚本。

image.png 

 

8. 优化API调用日志,配置独立的logServer

JeecgBoot提供了@AutoLog修饰符,然后将日志信息保存到了数据表sys_log中,这个方案在实际生产环境中容易造成大量的日志信息占用数据库存储空间,甚至影响到数据库性能。

 image.png

 

9. 结合业务完善数据库事务处理

实际业务系统需要完整的数据库事务管理,按照需求实现。

image.pngimage.png 

 

 


羚驾科技是一家初创的互联网科技公司,开发运营羚驾云灵活就业SaaS平台,线上运营文创产业园。

 

业务系统开发基于JeecgBoot低代码快速开发平台和WebStarter脚手架两个开源项目,正确定位,不过度设计,不偏离方向。

 

架构,中间件、分布式、微服务数据安全、风控,有没有自己的看法和经验想要分享?欢迎来聊

 image.png

 

写代码,

写好代码,

写符合软件工程规范的代码。

 


更多相关文章

  1. 「Jenkins」- 使用接口批量创建任务
  2. Java 抽象类与接口的区别
  3. Swagger 自动生成 Dubbo 服务的接口文档,以及测试调用
  4. 为什么我们要面向接口编程?!
  5. jQuery UI框架的Dreamweaver接口
  6. NodeList接口,HTMLCollection接口
  7. PDA调用接口 提示:客户端发现响应内容的类型为“text/html;charse
  8. DOM笔记(三):Element接口和HTMLElement接口
  9. 钩子中获取IHTMLDocument2接口的问题

随机推荐

  1. 推荐
  2. 《推荐系统实践》—— 读后总结
  3. 图解HTTP(二)
  4. 《Effective Java》—— 读后总结
  5. 《一线架构师实践指南》—— 读后总结
  6. Java EE 8 时间表公布,预计 7 月发布最终
  7. redis之持久化
  8. 说说java异常Exception
  9. redis之通信协议
  10. Java线程之概念与原理