Facebookログインを取得するPHP上に構築された投票アプリがあります(PHP SDKを使用)。投票するには、Facebook アカウントに接続する必要があります。不正投票を防ぐため、Facebook ログインを使用することにしました。
Facebook アカウントでログインすると、次のようになります。
- ログイン ページには、userId、accessToken、name、email、gender、location、hometown、およびユーザー プロファイルへのリンクという非表示の変数があります。これらはすべて、Facebook ログインから返されます。
- ユーザーがアンケートでオプションを選択すると、アプリはユーザーの選択を ID の詳細 (最初のポイントにリストされている) と共に記録します。
さて、ここに問題があります。偽の ID の詳細を使用して HTTP 要求をシミュレートできますが、アプリはそれが正当な要求であると見なし、投票を記録します。そのため、誰かがスクリプトを設定してランダムな ID の詳細を生成し、それらを HTTP リクエストで送信して、最終的に多くの不正投票につながる可能性があります。
おそらく、投票が終了した後、プロファイルの URL をテストして、プロファイルが存在するかどうかを確認できますが、ここでも 2 つの問題があります。
- 侵入者は、有効なユーザー プロファイル URL のリストを使用して不正投票を作成する可能性があります。もしそうなら、投票が不正であったかどうかを確認することはできません.
- 後で整理するよりも、不正投票を防止する方がよい考えではないでしょうか?
では、アプリを介した正当なログインのみを許可する方法はありますか? 投票を記録する前のテストのようなもの。
CAPTCHA は役立つと思いますが、ユーザーに提供したい迅速な投票エクスペリエンスを妨げることになります。
ありがとう!