匿名ユーザーが投票できる Web ベースのコンテストでの不正行為を防ぐ信頼できる方法はありますか?

StackOverflow https://stackoverflow.com/questions/55835

  •  09-06-2019
  •  | 
  •  

質問

私は匿名ユーザーが投票できるようにする Web ベースのコンテストに取り組んでいますが、ユーザーが複数回投票できないようにしたいと考えています。IP ベースの制限は匿名プロキシを使用してバイパスでき、ユーザーは Cookie をクリアできます。Silverlight アプリケーションを使用して分離ストレージにアクセスすることも可能ですが、ユーザーはそれをクリアできます。

ジョーカーがボットか何かで自分自身に投票しない限り、これを行うのは不可能だと思います。何かアイデアはありますか?

役に立ちましたか?

解決

短い答えは次のとおりです。いいえ。より長い答えは次のとおりです。しかし、それを任意に難しくすることはできます。私ならどうするか:

  • 投票にはキャプチャを解決する必要があります (自動投票をできる限り回避するため)。さらに効果を高めるには、複数の種類の簡単なキャプチャ (「猫が写っている写真を選ぶ」、「2+2 とは何か」、「単語を入力する」など) を用意し、両方を回転させることをお勧めします。時刻と IP によって自動システムが無効になるはずです (つまり、IP A を使用している誰かがキャプチャを解決するボットを作成した場合、これは翌日には役に立たなくなります。あるいは、その人がそれを他のコンピュータに配布したりプロキシを使用したりすると、役に立たなくなります)。
  • IP でフィルタリングする場合は、複数のホストが 1 つのパブリック IP の背後にある状況を考慮する必要があります (私の知る限り、AOL はいくつかの IP を介してすべての顧客をプロキシします。そのため、このような制限は AOL ユーザーを事実上禁止することになります)。また、多くのプロキシは元の IP (X-Forwarded-For など) を指すヘッダーを送信するので、それも確認してください。
  • 最後に、FSO (Flash Shared Objects - 「Flash Cookie」) のようなものの使用は、99.99% の人が知らないほどわかりにくいものです。Silverlight はさらに不明瞭です。さらに卑劣なことに、別のドメインを購入し、そのドメインから FSO を設定することもできます (そのため、ユーザーがドメインによって設定された FSO を探している場合、何も表示されません)。

これらの方法はどれも 100% ではありませんが、うまく組み合わせれば、必要なレベルの保証が得られます。これをさらに高いレベルにしたい場合は、ある種のユーザー登録を追加する必要があります (これは、投票が行われたときに有効な電子メール アドレスを尋ね、指定されたアドレスに確認リンクを送信し、投票数をカウントしないという単純なものです。リンクがクリックされなかった投票 - そのため、本格的な「ユーザー名、パスワード、名前、姓などを使用してアカウントを作成する」必要はありません。

他のヒント

いいえ、それはできません。必要なのは 1 人の人物と、意欲的なフォーラムだけです。 オンライン投票の結果を変える.

オンライン投票に内在する欠点を認識し、それらを回避しようとするのではなく、それを有利に利用するように努めなければなりません。

-アダム

確かに難しくすることはできます。

IP アドレス、ブラウザ ユーザー エージェント、マシン名、その他取得できる情報を使用してユーザー プロファイルを構築するのはどうでしょうか。

各ユーザーのプロファイルを保存し、データベースにすでにあるプロファイルと十分に類似したプロファイルを受け取った場合 (調整する必要があります)、その投票を破棄できます。

Silverlight を使用すると、おそらくより良いプロファイルを作成できると思いますが、どのような情報にアクセスできるかはわかりません。

クライアント側のソリューションは、あなたが挙げた理由により提供されていません。それらはユーザーによって操作される可能性があります。あなたが言ったように、サーバー側のソリューションはだまされてバイパスされる可能性があります。

1 人あたり 1 票を確実に得られるかどうかを 100% 確信できるわけではないという事実を受け入れるのであれば、ノイズを軽減するために取れる対策がいくつかあります。

  • 投票送信フォームで CAPTCHA を使用すると、ボットやスクリプトが投票しにくくなります。
  • IP アドレスごとの投票数を 1 に制限します。
  • 投票するには登録が必要であることを検討してください。(これが元の質問の一部を覆すものであることは承知していますが、投票をより細かく制御できるようになります。)

良いスタートですね。

コンテストの開発と監視における私の個人的な経験から言えば、匿名のユーザーに投票を許可する (またはコンテストに参加させるための操作を行う) 場合、不正行為を回避する確実な方法はありません。

IP を使ってアクションと次のアクションの間に遅延を導入することもできますが、それは非常に困難です。最善の方法は、特定の状況に該当する場合、キャプチャまたは同様のものを導入することです。

何よりも、匿名ユーザーを参加させないでください。「プレイ」してシミュレーションにアクセスさせますが、コンテストにはログインが必要です。

いいえ、それはユーザーのコンピューターであり、ユーザーが管理しています。残念ながら、唯一の解決策は、いわばコートに戻して認証を要求することです。

ただし、CAPTCHA は、投票を少なくとも人間のユーザーに制限するのに役立ちます。

もちろん、認証があっても単一の投票を強制することはできません。その場合、ボットに登録するように教えられるからです...

短い答えはノーであることに同意せざるを得ません...ただし、ここで私の最近の答えを見てみると: ユーザーを匿名で特定し、その情報を保存する方法 確かに 6% の誤差の範囲内でそれを得ることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top