权限系统设计方案汇总

1、概述

该文档主要阐述权限系统设计方案

2、目的

1)总结系统运用到的技术方案;

2)用于指导该系统后台人员开发工作。

3、系统设计

3.1  架构设计

系统业务不复杂,主要是CRUD(增删改查)操作,所以采用单体架构,就能满足当前系统需求。

系统技术架构图,如下:

3.2  框架选择

采用现今最流行、最成熟的springboot框架,springboot框架的优势在于现今市场上拥有较多的最佳实战案例,架构稳定,团队成员均对该框架比较熟悉,无需增加额外的学习成本,而且开发效率高。

3.3  负载均衡

通过Nginx+keepalive实现负载的高可用、可扩展、可伸缩。

3.4  token

采用jwt框架,进行token生成、分发、检验。

3.5  请求方式

http/https+post

3.6  数据库设计

除了基础表(用户表、角色表、权限表、角色权限表),另设计多一张表——操作记录表,操作记录表记录用户对系统的操作行为,达到跟踪、定位异常操作行为的目的。

3.7  安全监控

当前系统设计了操作记录表,记录用户的操作行为,后期可以使用ELK(ElasticSearch、Logstash 和 Kibana)框架,通过分析、统计日志监控用户的操作行为,达到双重监控,稳如狗。

4、安全设计

4.1  ip白名单

系统对接入端报备ip,作为接入端部署服务器身份认证。

4.2  防篡改

使用HMACSHA1签名算法,对请求数据作签名检验,达到数据防篡改的目的。

4.3  防幂等请求

去除请求参数requestTime,对请求参数重新生成签名,并设计一定的搁值缓存到redis,每次请求查看redis该签名是否存在,若不存在,持续跑下面的业务流程,若存在,不在走下面的流程,直接返回已经缓存的response。

4.4  防重复请求

略 (同防幂等请求一样的实现方式)

4.5  身份认证

系统对每次请求都返回token值,接入端下次请求需带上该token,作为接入端和系统当前会话身份认证,还作为当前会话的时效性认证。

4.6  防枚举攻击

本系统中,常见的枚举攻击情况有两种:

1)、固定账号,枚举密码攻击;

2)、固定密码,枚举账号攻击。

系统使用redis记录登录失败时账号或密码的使用次数,当账号或密码的使用次数达到设定的搁值,系统将冻结该账号或密码1小时(该值可配置)。

4.7  防SQL注入

由于SQL注入攻击只能对编译过程起作用,系统引入MyBatis持久层框架,通过MyBatis预编译功能,自动实现防止SQL注入。

4.8  XSS过滤

用户在做增、改操作时,对请求参数进行XSS过滤,防止系统受到XSS攻击。

5、监控运维

6、上线方案

java技术选型文档模板_系统方案汇总文档相关推荐

  1. Java计算机毕业设计水果商城源码+系统+数据库+lw文档

    Java计算机毕业设计水果商城源码+系统+数据库+lw文档 Java计算机毕业设计水果商城源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea ...

  2. java计算机毕业设计库存管理系统源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计库存管理系统源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计库存管理系统源码+系统+数据库+lw文档+mybatis+运行部署 本源码技术栈: 项目 ...

  3. 基于Java毕业设计宠物领养管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计宠物领养管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计宠物领养管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开 ...

  4. 基于Java毕业设计中医药科普网站源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计中医药科普网站源码+系统+mysql+lw文档+部署软件 基于Java毕业设计中医药科普网站源码+系统+mysql+lw文档+部署软件 项目架构:B/S架构 开发语言:Java语言 ...

  5. 基于Java毕业设计中山学院教室管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计中山学院教室管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计中山学院教室管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S ...

  6. 基于Java毕业设计毕业生论文管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计毕业生论文管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计毕业生论文管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 ...

  7. 基于Java毕业设计校园跑腿平台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计校园跑腿平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计校园跑腿平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  8. java计算机毕业设计网上花店源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计网上花店源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计网上花店源码+系统+数据库+lw文档+mybatis+运行部署 本源码技术栈: 项目架构:B ...

  9. 基于Java毕业设计大学生兼职平台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计大学生兼职平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计大学生兼职平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语 ...

  10. java mysql基于SSM宠物寄养中心系统源码+文档

    活动地址:毕业季·进击的技术er 博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 java mysql基于SSM宠物寄养中心系统源 ...

最新文章

  1. 浅谈MyBatis二级缓存
  2. JAVA四则运算(读写文件)
  3. 【HDU - 5585】Numbers (水题,数学,数论)
  4. poj 1005 I Think I Need a Houseboat
  5. java课程设计学生信息管理_JAVA课程设计---学生基本信息管理系统
  6. 文本自动摘要任务的“不完全”心得总结
  7. dll封装成activex控件_Qt编写自定义控件26-平铺背景控件
  8. 软件生成问候图片_设计师注意啦!欧美风双色图片一键生成的软件来啦!
  9. 见证人人的衰落,讲一句活该
  10. php图片加边框,PHP 给图片加边框
  11. 网站被攻击了怎么办?
  12. chrome下载速度慢,提高下载速度
  13. 绿色全要素生产率数据(2004-2017年)
  14. 确定sw1开关信号输入端口_MEMS光学器件— MEMS OXC(光交叉互连开关)
  15. pythonmathcot函数_math库是python语言的数学模块吗_Python中的数学模块:Math和Cmath
  16. 幼儿园案例经验迁移_2020年幼儿园中班教育笔记 生活经验的迁移
  17. python数据库分层设计_基于Python的高中教学数据库设计
  18. permutation importance
  19. 评测:Logitech ConferenceCam CC3000e-一款出色的摇摄变焦摄像头和扬声器,适合远程工作者使用
  20. 20221024 今天的世界发生了什么

热门文章

  1. 破解使用radius实现802.1x认证的企业无线网络
  2. Java 提取PDF文档中的图片
  3. python的拼音_Python之拼音拆分
  4. comment hive_Hive中基本语法
  5. redis 集群 set key报错CLUSTERDOWN Hash slot not served
  6. Unity3D Terrain 变成粉色(紫色/洋红色)解决方案!
  7. Excel利用宏进行VBA编程
  8. 2021-2027全球与中国铂金芯片温度传感器市场现状及未来发展趋势
  9. golang 实现微信聊天机器人
  10. 1002:方便记忆的电话号码