12

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

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

4

7 に答える 7

19

短い答えは次のとおりです。いいえ。より長い答えは次のとおりです。ただし、任意に難しくすることができます。私がすること:

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

これらの方法はいずれも 100% ではありませんが、これらを組み合わせることで、必要なレベルの保証が得られることを願っています。これをより高いレベルにしたい場合は、何らかのユーザー登録を追加する必要があります (これは、投票が発生したときに有効な電子メール アドレスを尋ね、指定されたアドレスに確認リンクを送信し、投票をカウントしないのと同じくらい簡単です)。リンクがクリックされなかった投票 - したがって、本格的な「ユーザー名/パスワード/ファーストネーム/ラストネームなどでアカウントを作成する」必要はありません)。

于 2008-09-11T05:28:14.890 に答える
1

いいえ、それはできません。オンライン投票の結果を変更するには、1 人の人と積極的なフォーラムが必要です。

オンライン投票に固有の欠陥を認識し、それらを回避しようとするのではなく、それらを有利に利用しようとする必要があります.

-アダム

于 2008-09-11T05:38:49.250 に答える
0

簡単な答えは「いいえ」であることに同意する必要があります...ただし、ここで私の最近の回答を見ると、ユーザーを匿名で識別してその情報を保存する方法は、確かに 6% の誤差範囲内で取得できます。

于 2010-12-15T00:31:58.377 に答える
0

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

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

もちろん、認証を使用しても、単一の投票を強制することはできません。ボットに登録するように教えるからです...

于 2008-09-11T05:18:22.823 に答える
0

あなたは確かにそれを難し​​くすることができます。

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

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

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

于 2008-09-11T05:21:29.837 に答える
0

クライアント側のソリューションは、あなたがリストした理由から出ています-ユーザーが操作できます。あなたが言ったように、サーバー側のソリューションはだまされてバイパスされる可能性があります。

1 人あたり 1 票しか得られないという事実を 100% 確信できないという事実を受け入れたい場合は、ノイズを減らすために実行できるいくつかの方法があります。

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

それは良いスタートです。

于 2008-09-11T05:23:28.287 に答える
0

コンテストの開発と監視における私の個人的な経験から、匿名ユーザーに投票させる (またはコンテストに参加させるために何かをする) 場合、チートを回避する信頼できる方法はありません。

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

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

于 2008-09-11T05:23:48.520 に答える