未验证 提交 f401781e 编写于 作者: DCloud_Heavensoft's avatar DCloud_Heavensoft 提交者: Gitee

update docs/uniCloud/ip-filter.md.

上级 deb41a02
> 新增于HBuilderX 3.5.4
IP防刷功能旨在防范短时间内大量相同ip请求导致云函数或数据库无法及时响应。此功能包含两个子功能:IP黑名单、IP访问频率控制。
IP防刷功能旨在阻止某些ip的访问和防范短时间内大量相同ip请求导致云函数或数据库无法及时响应。
虽然uniCloud是serverless,云函数很难被打垮。但
1. 如果攻击者持续攻击运行耗时久的云函数,因云厂商根据GBS计费,会给开发者造成经济损失。需要在尽可能短的时间阻断云函数运行。
2. 如果攻击访问大量数据库操作的云函数,会造成数据库整体性能下降,拖累正常用户对数据库的读写
IP防刷包含两个子功能:
- IP黑名单:手动拉黑某些ip。
- IP访问频率控制:根据相同ip访问云函数的频次自动拉黑某些ip一段时间。
## 启用IP防刷功能
1. 服务空间内开通了redis
2. 在uniCloud web控制台开启相关功能:[uniCloud web控制台](https://unicloud.dcloud.net.cn/)
2. 在uniCloud web控制台左侧导航开启ip防刷:[uniCloud web控制台](https://unicloud.dcloud.net.cn/)
### 生效范围
在完成上2步的服务空间中,在如下范围内支持ip防刷:
**注意**
1. 启用了redis扩展或jql扩展(jql扩展依赖了redis扩展)的云函数/云对象才会有防刷功能。未加载相关扩展库的云函数不生效。
2. clientDB,即客户端直接发起的数据库请求也生效。
3. 仅在客户端调用云函数/云对象时才会启用IP防刷功能。URL化、定时触发、云函数调用云函数均不触发此功能
- 此功能对clientDB生效
- 启用了redis扩展、jql扩展(jql扩展依赖了redis扩展)的云函数或云对象才会有防刷功能。
- 仅在客户端callFunction调用云函数时才会启用IP防刷功能。url化、定时触发、云函数调用云函数均不触发此功能
需要redis的原因是被拉黑的IP需要存在redis内,其key为:`unicloud:ip-black-list:set`
如果这些信息存在MongoDB中其实没有防刷的意义,而redis作为内存数据库,访问速度极快且不按照访问次数计费,是最佳方案。
## IP黑名单@ip-black-list
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册