短信注册,如移动应用程序:whatsapp

eav*_*eav 20 authentication sms android sms-gateway ios

我想知道这些短信注册机制是如何工作的.我在互联网上搜索,但问题是,有很多短信提供商想要出售在线短信服务,我找不到任何东西......

问题:这是如何工作的:设置您的手机号码,我们会向您发送一次性注册码的短信.将此代码放入我们的应用程序.

背后是什么?他们有短信网关或类似的东西吗?这不是太贵吗?

谢谢

Tim*_*tle 16

这是一个建立在Nexmo之上的简单电话号码验证服务(免责声明,我为Nexmo做了一点开发人员传播).我认为它基本上就是你要找的,目标是验证一个数字实际上属于一个用户(也可以用于第二因素身份验证).

移动应用程序的基本集成(特别是此示例代码,但是常见的流程):

  • 发送要验证的电话号码,接收唯一的哈希值.
  • 验证系统向用户发送唯一代码.
  • 一旦用户将该代码传递给您的应用程序,原始散列和代码将被发送到验证系统进行验证.

您可以删除托管部分,只需在应用程序中执行这些步骤(生成代码,通过SMS API发送,检查用户输入的代码).但是,有一些事情需要考虑:

  • SMS API的凭据将编译到您的分布式应用程序中.那是你想冒风险的吗?
  • 代码通过网络从设备发送; 虽然SSL会停止随意观察代码,但想要伪造注册的人很可能会从HTTP请求中捕获代码.

通过将验证系统置于移动应用程序之外,可以解决这两个问题.


ita*_*tai 9

我知道这篇文章已经过时了,但这对所有人来说都是如何访问这个页面的:

用户"苛刻的沙阿"说的是错的..

你不应该在设备上生成随机数!这妥协了整个验证,

  1. 你问用户电话号码,发送到服务器.
  2. 作为对该请求的响应,您生成一个随机数并使用用户编号保存在db上的用户记录,并使用该随机数发送SMS,请求的RESPONSE应为SENT-OK,NOT-SENT.
  3. 设备获取SMS并将其发送回服务器以与现有的db记录进行比较.

数据交换:

  1. 手机发送('012345567') - >服务器响应('SENT-OK'); 在后台:服务器:[生成号码,以短信发送,保存在用户01234567的数据库中,例如:123123]

[手机读取短信,例如'123123']

  1. 电话发送('01234567','123123') - >服务器响应('AUTH-OK');

在后台:服务器:[检查记录用户01234567的数据库,使用用户发送的数字编译步骤1中生成的随机数).

如果你在用户手机中生成这个号码,任何脚本小子都可以通过从内存/存储中提取这个号码(很容易做到)并欺骗包含它的短信来破解你的身份验证(也很容易做到)...你可能认为这是一个罕见的案例,但这是安全方面的一个主要漏洞,您可以像任何现有用户一样对自己进行身份验证并从中窃取数据,如果您按照"Harsh Shah"所说的方式执行此操作...