php - 仅使用电话号码登录的安全性,以及 SMS 代码
问题描述
我正在构建一个跨平台应用程序并使用 PHP 和 MySQLi。用户使用他们的 Facebook 帐户或电话号码进行注册。如果他们选择电话号码,他们输入他们的号码并发送包含验证码的短信。用户输入代码,然后一个 API 令牌被发回以在 API 请求中使用。Tinder(例如)就是这样。
我正在考虑使用 Twilio 进行验证。
我的问题归结为这个登录过程的安全性。恶意用户能否快速触发登录请求,一遍又一遍地创建验证码……发送大量短信并在我的 Twilio 帐户上花费我一大笔钱?我应该只允许这么多尝试吗?机器人最终能猜出代码吗?
Tinder API 背后的安全性是什么?
解决方案
要考虑的事情:
1- 每个电话号码的限制请求
2-限制每个用户的请求(按 ip)
3-使用验证码(仅在第二次尝试保持您的应用用户友好之后)
4-使用蜜罐
“机器人能猜出密码吗?” 验证码应该有时间限制。大约 2 分钟后,它们应该是无效的。时间限制和请求限制应该使机器人猜测代码的可能性很小。
如果您使用的是 laravel,它已经有速率限制中间件(通过 ip 限制)。
推荐阅读
- javascript - 用JS查找和替换自定义格式文本中的文本
- keras - 组合 GAN 函数期望输入轴为 -1。在 Jupyter 中工作而不在 Colab 中工作
- c - 为什么我的程序在定义两个大数组时会崩溃?
- excel - 有没有办法使用 TEXTJOIN 并增加分隔符?
- css - 任何人都知道如何删除输入中的丑陋框
- azure - 在应用程序洞察中捕获 APIM 请求和响应有效负载的正确方法是什么?
- amazon-web-services - EKS pod 中的多个卷挂载
- c++ - 等待 MyService 服务连接时达到超时(45000 毫秒)
- javascript - 有没有一种巧妙的方法来分隔 JS/jquery 中的选中复选框标签?
- r - 根据列值删除分组后的行