web-dev-qa-db-ja.com

SMSモバイルアプリのような登録:whatsapp

これらのSMS登録メカニズムがどのように機能するのか疑問に思っています。私はインターネットで検索しましたが、問題は、オンラインSMSサービスを販売したいSMSプロバイダーがたくさんあるため、何も見つからないことです...

質問:これはどのように機能しますか:携帯番号を設定し、SMSをotpで送信します。このパスワードをアプリに入力します。

後ろは何ですか?彼らはSMSゲートウェイまたはこのようなものを持っていますか?いくらですか?

ありがとう

20
eav

これがNexmoの上に構築された シンプルな電話番号検証サービス です(免責事項、私はNexmoに対して少し開発者エバンジェリズムを行います)。基本的にはあなたが探しているものだと思います。目標は、番号が実際にユーザーに属していることを確認することです(2要素認証にも使用できます)。

モバイルアプリの基本的な統合(具体的にはこのコード例ですが、一般的なフロー):

  • 確認する電話番号を送信し、一意のハッシュを受信します。
  • 検証システムは、一意のコードをユーザーに送信します。
  • ユーザーがそのコードをアプリケーションに渡すと、元のハッシュとコードが検証システムに送信されて検証されます。

ホストされている部分を削除して、アプリケーション内でこれらの手順を実行するだけです(コードを生成し、SMS APIを介して送信し、ユーザーが入力したコードを確認します)。ただし、いくつかありますその時点で考慮すべき事柄:

  • SMS APIの資格情報は、分散アプリケーションにコンパイルされます。リスクを冒しますか?
  • コードはデバイスからネットワーク経由で送信されます。 SSLはコードの偶発的な監視を停止しますが、登録を偽造したいと思った誰かがHTTPリクエストからコードをキャプチャする可能性が高くなります。

これらの問題は両方とも、検証システムをモバイルアプリケーションの外部に置くことで解決されます。

15
Tim Lytle

私はこの投稿が古いことを知っていますが、これは将来このページにアクセスするすべての人々のためのものです:

ユーザー「Harsh Shah」が言ったことは間違っています。

デバイス自体で乱数を生成するべきではありません!これは検証全体を妥協し、

  1. ユーザーに電話番号を尋ね、サーバーに送信します。
  2. その要求に対する応答として、乱数を生成し、dbのユーザーレコードにユーザー番号を付けて保存し、SMSをその乱数で送信すると、要求の応答はSENTになります。 -OK、NOT-SENT。
  3. デバイスはSMSを取得し、それをサーバーに送信して、既存のdbレコードと比較します。

データ交換:

  1. 電話send( '012345567')->サーバー応答( 'SENT-OK');バックグラウンドで:サーバー:[番号を生成し、SMSで送信し、ユーザー01234567のデータベースに保存します(例:123123)]

[電話はSMSたとえば「123123」として読み取ります]

  1. 電話送信( '01234567'、 '123123')->サーバー応答( 'AUTH-OK');

バックグラウンドで:サーバー:[dbでレコードユーザー01234567を確認し、手順1で生成した乱数とユーザーが送信した番号を比較します)。

ユーザーの電話で番号を生成すると、スクリプトキディはメモリ/ストレージからこの番号を抽出し(簡単に)、それを含むSMSを偽装(非常に簡単に実行できます)することで認証をハッキングできます...これはまれなケースだと思いますが、これはセキュリティの大きな穴です。既存のユーザーとして自分を認証し、「過酷なシャー」が言った方法でそれを行えば、ユーザーからデータを盗むことができます...

9
itai

基本的な基礎は次のとおりです。

  1. デバイス上のアプリでランダムコードを生成します。ユーザーに携帯電話番号を尋ねます。
  2. このコードと携帯電話番号をサーバーで実行しているアプリケーションに送信します。
  3. SMSゲートウェイAPIを呼び出して、指定した携帯電話番号にメッセージとしてコードを送信します。

SMS=ゲートウェイプロバイダーは多数あります。Googleで検索できます。ほとんどのプロバイダーは、さまざまなプログラミング言語でAPIを使用するためのチュートリアルも提供しています。コストは主にメッセージごとに基づいており、通常はSMSの数のパッケージの形で購入されます。

4
androidFan

この記事では、SMS検証をwhatsアプリと同じようにAndroidアプリに統合する方法について説明します。

Android追加SMS WhatsAppのような検証–パート1

Android追加SMS WhatsAppのような検証–パート2

enter image description here

基本的に、次の手順は携帯電話番号の確認に含まれます

  1. 最初のユーザーの携帯電話番号がサーバーに送信され、そこで新しいユーザー行が作成されます。

  2. 私たちのサーバーはSMSゲートウェイに、確認コード付きの携帯電話番号へのSMSを要求します。

  3. SMSゲートウェイは、SMS=を確認コードと共にユーザーのデバイスに送信します。

  4. 確認のため、確認コードがサーバーに再度送信されます。私たちのサーバーはそれを検証し、ユーザーをアクティブにします。

2
Minion