针对Webapp的安全电话号码短信验证流程

时间:2016-11-03 02:47:07

标签: sms twilio firebase-security sinch sinch-verification

我想在使用它们与注册用户进行通信之前验证电话号码。但是,我不清楚如果我安全地做到了。即

我正在采取的步骤:

  1. 询问用户的电话号码
  2. 发送短信验证码
  3. 用户输入代码
  4. 使用SMS服务(Sinch或/ Twilio)验证代码
  5. 正确的代码触发回调函数(客户端),将数字添加到后端数据库
  6. 不正确的代码无效
  7. 我关心的是第5步。我是否应该成功回调函数在客户端执行数字保存,还是应该触发执行保存操作的后端(服务器端)功能?

2 个答案:

答案 0 :(得分:0)

所以使用sinch就可以这样工作,所有步骤1到6在客户端都是正确的。 一边,

但是第5/6步更像是这样 5客户输入代码并将其发送给Sinch Backend    - 返回成功或失败的客户端(做任何逻辑)    - 使用状态回叫服务器,如果正确或不正确,请采取措施。

所以代码永远不会占用你的身份,在客户端注入数据库是不可能的,因为你可以获得客户端的成功,然后在客户端重新加载你的后端数据,服务器已经更新了服务器方法。有意义吗?

https://www.sinch.com/docs/verification/rest/#howtousetheverificationapis

答案 1 :(得分:0)

Twilio开发者传道者在这里。

我肯定会在服务器端进行代码验证,然后如果成功则将数字保存到数据库中。客户端的任何验证和成功回调肯定会被具有JavaScript知识的攻击者绕过。

我建议您查看Authy's phone verification API,而不是直接使用Twilio。 Authy是Twilio的一部分,但更具体的是验证和双因素身份验证工作流程。

我不确定你的后端是什么写的,但是有一些教程可以在Twilio网站上用Authy验证电话号码。我们在NodeRubyPython.NETPHPJava中提供了示例。

我不确定这是否有帮助。如果您有任何其他问题,请与我们联系。