WEB端风险行为识别和安全防范机制实现方案.md 1.7 KB

WEB端风险行为识别和安全防范机制实现方案

防范场景

  1. 密码登录
  2. 手机登录
  3. 注册
  4. 绑定手机号
  5. 找回密码

以上是主要场景,可以设置单位时间内,单个IP的请求次数限制,如果超过次数,直接跳转到全局的验证码界面,解锁。

功能

可以在http://node-ci.yohops.com/ 的滥用防护新增配置模块,配置项如下:

名称 例子 说明
app yohobuy-node 应用名称
route passport/reg/sendBindMsg 路由路径
interval 5m 间隔时间
requests 5 请求次数
process 跳转全局验证码解锁、返回403
state on、off 开启或关闭

这些配置可以存储在zookeeper里面,在应用内读取配置,使用memcache进行路由的计数。可以将以上的防范场景配置起来。

计数原理

请求时,使用 route+ip生成一个key,使用memcache的touch设置key的失效时间,incr方法进行计数,然后通过keyget到计数,如果超过配置的阈值,则按照配置进行返回拦截处理。

前端处理方式

如果触发了配置的阈值,对应的IP根据处理方式进行处理,如果是Ajax的,在全局ajax里面捕获防护的异常,301到验证界面或者返回访问次数过多403的提示。如果是html的直接服务端跳转到验证码界面或者显示异常页面。

浏览器->服务端: 发起请求
服务端->memcache: 计数路由IP的计数
memcache->服务端: 返回路由对接IP计数结果
zookeeper配置-->服务端:同步配置
服务端->浏览器:返回处理结果
Note right of 服务端: 如果触发阈值