reactjs - 无需凭据即可保护 API 路由
问题描述
我有一个表单来检查电子邮件是否已经在我的数据库中(/api/user?email=user@example.com),如果是,它会回复他们的信息。
我似乎无法找到一种方法来保护我的 API 路由免受有人去邮递员的攻击,而只是暴力破解GET https://example.com/api/user?email=name@domain.com并收集个人信息。
我需要此功能而无需任何登录凭据。我知道必须有一种行业标准的方式来做到这一点。有保险提供商使用他们的表格来做到这一点。(例如,一旦您输入您的电子邮件,它就会用您的名字向您打招呼,并要求您完成填写表格。)
换句话说 - 我需要我的 api 路由以某种方式区分发出这些请求的合法浏览器或具有不同意图的人。
解决方案
没有标准,但您可以保护您的路线免受暴力:
- 添加速率限制以避免来自小范围 IP 的暴力破解
- 添加验证码检查以避免非客户端请求和廉价机器人。
- 为每个用户生成会话(或散列 URL),并只允许用户通过输入电子邮件来完成表单
- 使用 csrf 令牌避免非客户端请求
推荐阅读
- ios - 录制视频时在前后摄像头之间切换(Snap / Stories - Instagram)
- opencv - OpenCV3 没有正确释放相机
- highcharts - Highcharts 中的工具提示未显示正确的日期格式
- c++ - QSslSocket 无法解析和 Permission Denied 错误
- python - Django ProgrammingError:在 Django 源代码中创建迁移后,关系已经存在?
- bash - 源命令不适用于变量或带引号的字符串
- python - python - 用户提供的函数的衍生物(从文件中读取)
- html - 离子行显示同一行中的所有元素
- ios - 无法从呈现的视图控制器访问 TopView
- r - 根据 R 中的多个排名列输出收藏夹