监控中心设计思路

一、前端安全

不要将后台api直接暴露在前端页面里。而是通过前端服务器将关键参数进行混淆加密。

1. 加密参数

对关键参数进行加密,可以把多个参数再结合时间戳进行加密,保证即使明文不变密文也是在不断变化的

2. 混淆参数

前端多传递一些参数,随机参数个数,随机参数内容,以起到混淆的作用(后端不必接收这些参数)

举例:

比如,前端页面里的投票api不应该是:

POST:  /v1/ballot
{
  X-UserID: 11111,
  vote_id: 8,
  candidate_id: 325,
  weight: 5
}

而是应该由前端服务器生成:

POST:  /v1/ballot
{
  arg_1: w7wj38sjw02k8eej5, // 有效参数
  arg_2: d83dkssk93jj3      // 随机参数
  ...............           // 随机参数
  arg_n: dkd83j9wkj38as     // 随机参数
}

有n个参数,但是实际有效的只有一个(这个一个有效的参数就已经包含了明文的所有参数),其它都是随机生成的。

二、链路安全

1. 服务器之间的链路安全

集群内网

2. 前端与服务器之间的链路安全

https

3. 前端授信

可以采用下发token(随机码)的方式
在这里插入图片描述

三、监控系统

监控系统包括四个部分,分别是防火墙、监察中心、处理中心、警报中心,整体处理流程如下图所示。
在这里插入图片描述

1. 防火墙

请求进来之后,首先经过防火墙,直接过滤掉非法请求。非法请求包括:很频繁的请求;已经被加入到黑名单中用户,设备,ip。

将做成一个jar包,可以自由的接入到各个微服务中,实际上是一个aop切面。

功能:
  • 频率控制
    某个用户、设备、ip的请求频率不能超过多少
  • 黑名单
    某个用户、设备、ip的请求不允许通过
  • 记录请求
    将经过防火墙的请求上传到请求队列里

防火墙可以定义自己的请求需要经过哪些监察器(优化:可以在监察器之间采用与或非进行组合)

2. 监察中心

组成部分:任务调度、线程池和监察器

监察中心有一个任务调度中心会读取防火墙中的请求队列,然后从线程池中取一个线程来进行处理,线程带着请求陆续的经过需要的监察器。
如果请求在经过某个监察器时,发现有风险,则调用处理中心的接口上报监察结果。

3. 处理中心

处理中心拿到上报的监察结果后,根据提前预制的处理策略做出不同的反应
白名单设置,对白名单中的微服务或请求不做处理

对外提供api:
  • 上报接口
    api参数:哪个微服务的请求、哪个请求、监察结果
手动处理接口:
  • 限制频率:设置某个用户(设备、ip)使用某个微服务某个接口的频率上限
    api参数:哪个微服务的请求、哪个请求、限制对象类型、限制对象id

  • 加入黑名单:设置某个用户(设备、ip)禁止使用某个微服务某个接口
    api参数:哪个微服务的请求、哪个请求、限制对象类型、限制对象id

处理策略设计:

哪个微服务、如果出现了哪些监察结果,采用哪种处理方式

可能出现的监察结果和处理方式:

请求频率异常(通过防火墙控制频率)

4. 警报中心

对外提供api:
  • 警报接口
    api参数:发送对象、警报方式、警报内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值