api - 如何保护不需要的恶意请求的公共 API 路由?
问题描述
我目前正在做一个全栈 Web 项目,现在正在研究 API 安全性。我已经实现了一个用户登录,然后允许客户端访问我的 API 的大多数路由。但也有一些不受保护的路由可以而且必须在没有登录的情况下访问(例如注册、登录……)。
例如,一个路由返回特定用户名或电子邮件地址是否已被另一用户使用并在注册过程中使用。对于不怀好意的人来说,这条公共路线将非常有助于找出试图破解或猜测密码的电子邮件地址或用户名,因为它们可以避免未使用的凭据。
我知道大公司经常使用这个功能来向用户展示他是否可以使用他想要的用户名。他们如何确保没有滥用?我怎样才能保护我的 API 和用户免受这种情况的影响?
我将不胜感激任何帮助。非常感谢!
解决方案
限制 API 滥用率限制是一种很好的做法。一种方法是指定每个 IP 地址的最大 API 请求数量,然后忽略这些请求。
可以在此处找到一篇很好的文章,描述了这样做的解决方案并展示了 NodeJS 中的实现示例。
感谢 Gilbert Le Blanc 在这方面的帮助。
推荐阅读
- docker - 在詹金斯管道期间无法将卷安装到 docker 容器
- oauth-2.0 - Azure AD B2C 授权代码流 - 访问 graph.windows.net
- angular - 创建支持点击事件的 NativeScript Angular 组件的正确方法是什么?
- php - 解码 JSON 字符串中的 unicode 控制字符
- apache-kafka - N 个数据集的 x、y 坐标有多少个 Kafka 主题
- html - 在 Node 中显示来自 html 的图像
- python-3.x - 过滤并从python中的csv文件制作列表列表
- excel - 我可以编写我的 Excel 宏来编写 AppleScript 并将其存储在 Excels Application Script 文件夹中吗?
- angular - 无法使用 chrome-headless 在 docker 中运行 angular-cli 业力测试
- typescript - 是否可以在函数调用之外使用 NonNullable 缩小联合类型?