我正在为我的Django项目实施一个SMS注册系统。就像Whatsapp或电报信使一样,用户只需使用手机号码就可以注册和登录。和OTP代码。
但我在申请中发现了一个问题。
当用户输入他的号码,我的应用程序发送一个OTP给用户与短信。他不能在3分钟内用短信请求新的OTP。一个用户可以在一天内使用SMS请求总共10个OTP。但是,如果黑客写机器人输入不同的移动号码,我的应用程序就无法检测到这一点。
例如,一个拥有10000个移动号码字典的机器人,逐个输入这个数字。我的应用程序只发送带有短信的OTP到10000不同的移动号码。我将不得不支付很多给我的短信服务提供商。
我怎样才能避免这个问题呢?像Whatsapp这样的信使是如何解决这个问题的?
发布于 2019-06-17 15:29:05
有许多事情,你可以做,以防止机器人垃圾邮件。您可以使用captcha,比如Google中的recaptcha,或者如果您不需要任何可见的输入,可以查看honypot方法(如果输入被填充为忽略表单,则添加一个css/js为普通用户隐藏的字段,机器人将填充该字段)。
您可以做的另一件事是在注册/登录页面上设置一个速率限制,有一个Django应用程序提供这个https://github.com/jsocol/django-ratelimit。
https://stackoverflow.com/questions/56632805
复制相似问题