0

我正在为我的 Django 项目实施 SMS 注册系统。像 Whatsapp 或电报信使一样,用户只需使用手机号码即可注册和登录。和 OTP 代码。

但是我在我的应用程序中发现了一个问题。

当用户输入他的号码时,我的应用程序会通过 SMS 向用户发送 OTP。他无法在 3 分钟内通过 SMS 请求新的 OTP。一个用户一天可以通过短信请求总共10个OTP。但是如果黑客编写了一个机器人来输入不同的手机号码,我的应用程序就无法检测到这一点。

例如一个机器人,它有一个包含 10000 个手机号码的字典,一个一个地输入这个数字。我的应用程序只是将带有短信的 OTP 发送到 10000 个不同的手机号码。我将不得不向我的短信服务提供商支付很多钱。

我怎样才能避免这个问题?像 Whatsapp 这样的信使如何解决这个问题?

4

1 回答 1

1

您可以采取多种措施来防止机器人垃圾邮件。您可以使用验证码,例如来自 Google 的 recaptcha,或者如果您不想要任何可见的输入,您可以查看 honypot 方法(添加一个由 css/js 为普通用户隐藏的字段,机器人将填写,如果输入已填写忽略表单) .

您可以做的其他事情是在注册/登录页面上进行速率限制,有一个 Django 应用程序提供此https://github.com/jsocol/django-ratelimit

于 2019-06-17T15:29:05.597 回答