WEB端风险行为识别和安全防范机制实现方案.md
1.7 KB
WEB端风险行为识别和安全防范机制实现方案
防范场景
- 密码登录
- 手机登录
- 注册
- 绑定手机号
- 找回密码
以上是主要场景,可以设置单位时间内,单个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 服务端: 如果触发阈值