首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手机应用中的短信注册: whatsapp

手机应用中的短信注册: whatsapp
EN

Stack Overflow用户
提问于 2012-09-13 15:16:23
回答 4查看 37K关注 0票数 20

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

问:这是怎么工作的:设置你的手机号码,然后给你发一条带有动态口令的短信。将此密码输入到应用程序中。

后面是什么?他们有短信网关或类似的东西吗?它要多少钱?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-13 19:03:10

这是一个构建在Nexmo之上的simple phone number verification service (免责声明,我为Nexmo做了一点开发人员的宣传)。我认为这基本上就是你想要的,目标是验证一个号码实际上属于一个用户(也可以用于第二因素身份验证)。

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

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

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

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

请求中捕获代码。

这两个问题都可以通过将验证系统放在移动应用程序之外来解决。

票数 16
EN

Stack Overflow用户

发布于 2015-02-20 01:34:59

我知道这篇文章太老了,但这篇文章是为将来访问这个页面的人准备的:

用户"Harsh Shah“所说的是错误的..

您不应该在设备本身上生成随机数!这损害了整个验证,

  1. 您向用户索要电话号码,将其发送到服务器。
  2. 作为对该请求的响应,您生成一个随机数并将用户号码保存在数据库中的用户记录中,然后使用该随机数发送短信,请求的响应应为SENT-OK,NOT-SENT。
  3. 设备获取短信并将其发送回服务器,以便与现有的数据库记录进行比较。

数据交换:

  1. phone发送(‘012345567’)->服务器响应(‘SENT-OK’);后台:服务器:生成号码,以短信形式发送,为用户01234567保存在数据库中,例如: 123123

手机读短信,如'123123‘

  1. phone发送(‘01234567’,'123123')->server ->server

后台:服务器:[检查记录用户01234567的db,将在步骤1中生成的随机数与用户发送的数进行比较)。

如果你在用户手机中生成号码,任何脚本孩子都可以通过从内存/存储中提取这个号码来破解你的身份验证(很容易做到),并欺骗包含它的短信(也非常容易做到)……你可能会认为这是一个罕见的案例,但这是安全上的一个主要漏洞,你可以将自己认证为任何现有用户,并从他们那里窃取数据,如果你这样做的“严酷沙阿”说…

票数 9
EN

Stack Overflow用户

发布于 2012-09-13 17:28:39

基本的基础是:

  1. 会在设备上的应用程序中生成随机代码。询问用户的手机号码。
  2. 将此代码和手机号码发送到您在服务器上运行的应用程序。
  3. 调用短信网关API将代码作为消息发送到指定的手机号码。

有许多SMS网关提供商。你可以在谷歌上搜索。它们中的大多数还提供了在各种编程语言中使用其API的教程。费用主要是基于每条消息,通常是以SMSes数量的套餐形式购买。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12401255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档