• 系统方案汇总文档


    以权限系统为例:

    文档内容如下:

                                       权限系统设计方案汇总

    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、上线方案

  • 相关阅读:
    memory runs at single channel问题解决
    ASP php获取文件URL地址等方法
    zencart的modules下数据库操作templates排版和common首页引用
    php生成html 伪静态??
    Linux服务器自动备份压缩MySQL数据库的实用方法
    dos 命令集
    Zencart 500错误查找和解决方法
    破解JS加密:url unicode加密而已
    .htaccess 保护文件夹
    TCP 的那些事儿(上)
  • 原文地址:https://www.cnblogs.com/javalyy/p/12204753.html
Copyright © 2020-2023  润新知