5

ユーザーが携帯電話番号を入力する必要がある新しい Web サイトをコーディングしています。私が直面している問題は、ユーザーが実際に所有者であること (またはこの場合はアクセス権があること) を確認する必要があることです。携帯電話番号。

私が思いついた解決策は、番号の送信時にトークンを含む SMS を送信し、Google カレンダーと同じように、ユーザーに私の Web サイトでトークンを入力するように依頼することです。ただし、予算が限られているため、ユーザー A が 100,000 件の携帯電話番号を送信しないようにする必要があります。送信された SMS ごとに約 0.10 米ドルの費用がかかるため、すぐに倒産してしまいます。

これまでのところ、次の解決策を考え出しました。

  • CAPTCHA を使用する(一部のユーザーを遠ざけており、手動登録に対して依然として脆弱です)
  • 特定の IP アドレス要求(動的 IP、プロキシなど)に対するトークンの数を制限する
  • 特定の携帯電話番号に対して送信されるトークンの数を制限します (ユーザーは利用可能なすべての番号のトークンを要求でき、実際のユーザーが正当なトークンを要求しようとすると、その番号は既にブロックされています)

これらの解決策はどれも完璧ではありません。この問題にどのようにアプローチすることをお勧めしますか?

4

5 に答える 5

6

最近のプロジェクトでは、SMS番号をユーザーアカウントに関連付けていました。各アカウントには、CAPTCHAとメールによるアクティベーションが必要でした。ユーザーは、あなたが使用しているように、トークンを介してSMSをアクティブ化できます。

IPアドレスをレート制限できます(合計制限ではありません)。5分以内にIPからのリクエストが10件以下、またはそのようなもの。

および/または未処理のSMS要求を制限することができます。IPアドレスがSMSのトークンを要求した後、そのIPが別のSMS番号を要求する前に、トークンを送信する必要があります。または、IPごとに1日あたり10個以下の未処理のSMSトークン。

また、@ Alanが言ったように、私たちは1か月あたりのSMSメッセージに上限を設けています。

于 2009-08-21T20:50:24.597 に答える
3

Twitter と同じように、ユーザーにトークンをテキストで送信することもできます (ユーザーにテキスト メッセージで送信するのではなく)。

これには、テキストを無料で (またはそれに近い) 受信できるプロバイダーを見つける必要がありますが、その方が簡単かもしれません.

于 2009-08-24T12:54:11.177 に答える
3

CATPCHA と Limit the requests of a given Mobile Number を組み合わせて使用​​します。

さらに、SMS アグリゲーターで月ごとの事前設定された制限を指定できる必要があります。その制限に達すると、サービスは停止されます。そうすれば、攻撃の被害者になった場合、限られた額の賠償責任のみを負うことになります。

SMS の代わりに、電話番号を呼び出す自動サービスを利用して、ワンタイム パスワードを (テキスト 2 の音声で) 読み上げることができます。これらのサービスは料金が SMS と似ており、より多くのオーバーヘッドがあるため、スパムが悪用される可能性は低くなります。

Twilioの料金は 1 分あたり 0.03 ドル、この場合は 1 通話あたり 0.03 ドルです。

于 2009-08-21T20:45:41.237 に答える
0

SMS の料金が 100 円もかからないのはなぜですか? すべての SMS システムに関連付けられている EMAIL アドレスを使用します (少なくともここ米国では)。

http://www.sms411.net/2006/07/how-to-send-email-to-phone.html

于 2009-08-21T20:41:58.280 に答える
0

誰かがシステムを悪用しようと最善を尽くした場合、その方法を見つける可能性が高くなります。すでに考え出された手法を組み合わせて使用​​することは、ほとんどの悪意のあるユーザーを阻止するための最良の方法である可能性があります。

ユーザーができることを制限します (1 つの IP から 10 分間で 10 件を超えるリクエストを送信しない、1 つの電話番号で受信できるのは 1 週間に 3 つのテキストのみ、番号を入力する前にキャプチャする)、さらに重要なのは、ユーザーがメッセージの内容を制御できない場合ですそれを悪用する本当の理由はありません。

于 2009-08-21T21:09:41.687 に答える