ホームページ >バックエンド開発 >PHPチュートリアル >他人が確認コードをスワイプできないようにするにはどうすればよいですか?
Keng 製品によって設計された登録/ログインでは、携帯電話認証コードを取得できますが、グラフィック認証コードは含まれていません。そして現在、検証コードを取得するためのインターフェースが何度もスワイプされています。過去 1 時間で何千ものリクエストがあり、それらはすべて異なる IP と異なる携帯電話番号からのものです....
グラフィック確認コードを追加する以外に、スワイプを防ぐにはどうすればよいですか?
Keng 製品によって設計された登録/ログインでは、携帯電話認証コードを取得できますが、グラフィック認証コードは含まれていません。そして現在、検証コードを取得するためのインターフェースが何度もスワイプされています。過去 1 時間で何千ものリクエストがあり、それらはすべて異なる IP と異なる携帯電話番号からのものです....
グラフィック確認コードを追加する以外に、スワイプを防ぐにはどうすればよいですか?
グラフィックの確認コードを除いて、私が考えることができるすべて:
携帯電話番号に基づいて、携帯電話ごとに 1 日に最大 N 個の確認コードを送信できます。 LZでは既に追加されているようです。
IP に基づいて、IP ごとに 1 日に送信される N 個の確認コードの最大数を制限します... -- 欠点: 通常のユーザーを誤って殺害するのは簡単なので、注意して使用してください
【究極の手法】ユーザー行動のビッグデータ分析に基づく
ユーザーの行動に基づいて分析するにはどうすればよいですか?簡単な方法を考えました:
まず第一に、通常のユーザーは確認コードリクエストの送信に加えて、CSS/JS/HTML/画像などのページ上の他のリソースにもアクセスする必要があります。
ただし、ブラシの場合は、これらのリソースに具体的にアクセスできない可能性があります。
ユーザーがページにアクセスしたときに human
参数存在session
中,每当其请求页面中的一个资源则human += 1
。等到发送验证码的接口的时候,取出来这个human
参数看看其值是多少,正常的一个用户这个human
值应该是大于某个值的(比如5
),小于的则应该就是刷子。(为0
を記録できるようにします (ブラシである必要があります)
私が言ったことは比較的単純で、いくつかのリクエスト間の間隔、ログインまたは登録ボタンをクリックする前のマウスの移動軌跡、マウスが押されて閉じられた時間などを記録できます。包括的な分析のためにそれらを記録します。
Google のような reCAPTCHA を引用またはコピーしていただければ幸いです。ワンクリックで人や機械のブラシを自動的に識別します。
New Wolf Microwave のように~ ユーザー名とパスワードが存在する場合にのみ、検証馬が送信されます。
問題は、携帯電話の確認コードを介してログインするときにパスワードを追加できないことです。登録したパスワードは何気なく入力してもあまり意味はありません
@locatejoe
パスワードを表示する代わりに、ユーザー名とパスワードが MD5 値として取得され、結合され、ハッシュ化され、bloomFilter と同様のフィルターにマッピングされます。
bloomFilter が 不存在
を返す場合、検証馬は送信されません。
bloomFilter はスペースをあまり取らず、非常に高速です。
以前にもこの問題が発生しました
2 日間で 20,000 件を超えるメッセージが記録されました
解決策:
1. グラフィック確認コードを追加します。
2. 同じ携帯電話が同じ期間に 3 つのメッセージしか送信できないことを決定します。
3. 同じ携帯電話と IP の場合、テキスト メッセージの送信時間を決定します。 30 分以内に使用されると送信されません
とにかく色々な方法があるので試してみてください
IP と携帯電話番号が異なる場合は、グラフィック確認コードを追加できます。 。 。
グラフィック検証コードを追加します。フォントの色が単色になりすぎないようにしてください。
テキストメッセージが送信され、フロントエンドCookieによって判断され、PHPに個別に保存された後に間隔が必要です
インターフェースは、要求されたIPアドレスと携帯電話番号を決定する必要があります。前回からの時間が短すぎる場合、送信は許可されません