28

私が運営しているウェブサイトにいくつかの投票アップ/投票ダウンボタンを追加することを計画しています。これは簡単に思えますが、私は人々が何度も投票するのを止めたいと思っています。解決策の1つは、投票を許可する前に登録することですが、強制的に登録する必要はありません。

これを行うための合理的に簡単な方法はありますか?複数のユーザーが同じIPアドレスから来ている可能性があるため、IPアドレスを確認することは良い解決策とは思えません。

クッキーが答えかもしれませんが、知識のあるユーザーはクッキーを削除することができます。より良いアイデアはありますか?

4

16 に答える 16

24

役に立たない回答で申し訳ありませんが、私の経験を共有したいだけです。

約 8 年前、私はオンライン投票を行うサイトで働いていました。私たちはかつて、私たちの質問のいくつかに 1 分間に数百票の投票を行うボットにハッキングされました。

IP アドレス、Cookie などの緊急チェックを実装する必要がありましたが、他に何があったか覚えていません。

一日の終わりに、投票を取り下げることにしました。それらのいまいましいロボットは気にしませんでした。IP アドレスのなりすまし、Cookie の削除などが行われました。

投票を本当にハッキングできないようにする必要がある場合は、ボットが新しいアカウントにサインアップするのを避けるために、登録を要求し、キャプチャを使用する方法は他にありません。

そして悲しいことに、これはただの娯楽サイトで、好きな色は何かなどを投票するものでした.

私たちが試みなかった唯一のことは、当時存在しなかったため、キャプチャを使用することでした. これにより、人間以外の不正行為が大幅に減少した可能性があります。

この件に関する専門家のアドバイスとしてこれを受け取ってはいけません。なぜなら、オンライン世論調査と関係があったのはその時だけだったからです。しかし、私は自分の話を思い出し、共有したいと思いました。

于 2009-02-21T10:25:46.377 に答える
8

それは本当にあなたのウェブサイトの性質とあなたの結果がどれほど正確である必要があるかにかかっていると思います。

クッキーを使用することは最良の選択肢のように思えますが、それはあなたのウェブサイトのターゲットオーディエンスに依存します。彼らは、システムを打ち負かして複数回投票できるようにするのに十分な技術に精通しているでしょうか?そうでない場合、リスクはかなり低いはずであり、これが最善のアプローチのように思われます。

あなたが言ったように、IPアドレスに対するチェックは制限が強すぎるかもしれません。しかし、すべての投票が一意の個人からのものであることが重要である場合、一部の正当な有権者が投票できないことを意味する場合でも、これはより良いアプローチである可能性があります。

別の選択肢を考えましたが、それが可能か実現可能かはわかりません。IPアドレスアプローチをハードウェアベースのチェック(NICのMACアドレスなど)と組み合わせることができれば、LAN内のNATによるIPアドレスアプローチの制限がなくなります。しかし、インターネットカフェにさまざまな個人が使用するコンピューターがある場合は役に立ちません。

また、ボットに投票する可能性を減らすために、キャプチャ(未登録のアカウントの場合)を使用する必要があります。誰かが悪意を持って複数の票を投じたい場合、ボットを介して投票プロセスを自動化することをより困難にすることは、うまくいけばそのような行動の発生を減らすのに役立ちます。

于 2009-02-21T10:16:56.353 に答える
6

したがって、一意の各ユーザーが各アイテムに対して 1 票しか持たないようにする必要があります。以前に投票したことがある人が投票しようとすると、これを検出する必要があります。つまり、個人を特定する必要があります。それを回避するためのトリックはありません。

現在、人はどのコンピューターからでもログインできるため、コンピューターを特定することは役に立ちません。これにより、IP チェックや Cookie、およびユーザーのハードウェアに基づくその他すべてが除外されます。

人を特定する方法は?できません。社会保障番号 (これは韓国でよく使用されると思います)、パスポート番号などの一意の資格情報を提供することによって、彼らに身元を明らかにすることを強制することしかできません。これはもちろん、チェックしないと役に立ちません。衝突の可能性がほとんどない 10 桁の数字は誰でも作ることができるからです。

ユーザーを登録しても、それ自体はあまり役に立ちません。別のアカウントを登録するだけです。

于 2009-02-21T10:28:24.577 に答える
4

ボットにとってより困難にするために、それを多段階のプロセスにすることができるでしょうか。

登録または同様のタスクにより、Cookie-Aが取得され、投票するとCookie-Bが取得されますが、Cookie-Bがあり、適切な一致するCookie-Aがない場合、投票はカウントされません。すでにCookie-Aを持っていることで検出できる同じマシンに再登録しようとした場合。手順を速く実行しすぎると、BOTとして扱われます。

私たちは多くの質問を伴う心理測定テストを行い、ユーザーは思慮深い答えをしなければなりませんでした。N秒未満の答えは、誰かがボタンを押すだけでそれを通り抜けることでした。回答が速すぎるとは決して言わず、データを「疑わしい」とマークしただけです。

したがって、投票ボタンに直接移動しようとする人は機能しません。ステップA、ステップb、ステップCの順に実行する必要があります。

再投票するには、Cookieをクリアし、再登録し、宣伝文句(何でも)を読んで、最後に再投票する必要があります。すべて正しい順序で、速すぎないようにします。

キャプチャシステムと同様に、JavaScriptを有効にする必要がある場合があります。キャプチャには、ある種の遅延が発生する可能性があります。「2つの単語が表示されるので注意してください」とすると、2つの単語が次々に表示されますが、「実際の単語」とは、簡単に覚えて入力できるようにするためです。 「速すぎる」は無効です。

ある時点で、人々はただイライラするようになりますが、気になりません。

于 2009-02-21T13:32:40.330 に答える
3

明らかに、ユーザーが 1 回しか投票できないように、ユーザーを識別する必要があります。ただし、ユーザーを識別しても、ログイン画面をポップアップする必要はありません。上で述べたように、あなたは電子メールアドレスを尋ねることができ、それを識別子として使用することができます.

ユーザーが登録ユーザーになるときに勝つもの(ここでは評判)を持っていて、ログインプロセスが電子メールアドレスを与えるのと同じくらい簡単である場合、それはユーザーがいるウィンウィンの状況です.ログインして投票して、あなたは彼が登録して投票してくれることをうれしく思います (そして、質問ごとに 1 回だけ)。

Jeff Atwood が「ログイン バリア」に関する記事を書いています。

于 2009-03-14T00:46:09.063 に答える
3

私はかつてコンテストの投票システムを作成しました。複数の人が同じ IP から合法的に投票するという事実のため、IP による投票を制限することは制限されていました。そのため、私は電子メールによる確認方法を採用しました。各有権者は確認リンクが送信された電子メール アドレスを入力する必要があり、クリックすると投票が有効になり、そのアドレスを使用した追加の投票が防止されます。

うまくいきませんでした。人々は、さまざまな無料サイトで何百もの偽の電子メール アドレスを作成しました。

決選投票でうまくいったことは、やや驚くべきことに、電子メール アドレスと投票のペアをデータベースに追加することでしたが、すぐに確認メールを送信することはできませんでした。代わりに、cron ジョブでそれらのバッチを 15 分ごとに送信するようにしました。これにより、多くのアドレスを登録する人にとっては、さらに複雑になります。将来のある時点で、アドレスをすべて開いたままにするか、各アドレスのログイン情報を覚えておく必要があるからです。

もちろん、十分にやる気のある人にとっては簡単にバイパスされますが、この場合はうまく機能しているように見えました.

于 2009-09-07T15:12:48.720 に答える
1

このようなシステムを使用したことはありませんが、ブラウザのフィンガープリントでユーザーを識別してみてください。このjQuery プラグインは、画面サイズ、色深度、ユーザーのタイムゾーン、およびインストールされているプラ​​グインを組み合わせて、ユーザーの一意の ID を作成します。間違いなく絶対確実ではありませんが、それは別のアプローチです。

于 2011-09-28T23:35:30.803 に答える
0

同じユーザーからの複数の投票を回避する正確な方法はありません。Cookieを削除しなくても、別のブラウザや別のコンピュータを使用できます。

于 2009-02-21T10:15:37.760 に答える
0

賛成/反対の投票をする前に、ユーザーを登録する必要があると思います。登録するためにユーザーから少しの情報を得ることができるので、彼は退屈したり、登録を破ったりすることはありません。その後、必要に応じてアカウントを更新できます。私見これは最良の解決策です。

于 2009-02-21T10:18:14.727 に答える
0

Cookie ベースのアプローチを使用してください。これは、Web 上のほとんどのエンターテイメント グレードの投票に十分な精度を備えています。IP制限から離れてください。これは、大企業の 1 人だけが投票できること、および家族の中で 1 人だけが投票できることを意味します。

于 2009-02-21T11:24:10.137 に答える
0

言われているように、「完璧な」解決策はありません。

不完全な解決策として、IP アドレスとユーザー エージェントのハッシュを保存するのはどうでしょうか。

これは、異なるブラウザー ユーザー エージェントを持つ特定の IP からの異なるユーザーが引き続き投票できることを意味します。

于 2009-02-21T10:34:05.343 に答える
0

一人の人がどれだけ多くのアイデンティティをコントロールできるかが問題です。1 人の人物が複数の ID を制御するのを難しくすればするほど、投票はより安全になります。

結果が問題にならないエンターテイメント グレードの投票では、単一の Cookie アプローチで十分です。ユーザーが icognito ウィンドウを開くと、非常に簡単に回避できます。

登録バリアを配置すると、より良い保護を得ることができます。OAuth ベースのログインを使用してシームレスな認証を行うことができます。より多くの票を得るためにアカウントを切り替えるには、多少の労力が必要です。しかし、これは絶望的な人々が何度も投票することを止めるものではありません。

SMS で確認コードを送信するとさらに効果的です。人々は複数の電話番号を所有しているかもしれませんが、詐欺を実行するためにかなりの数の電話番号を持っていることは一般的ではありません。しかし、このアプローチはコストがかかり、サーバーを DoS してすべての SMS を使い果たすことによって悪用される可能性があります。

投票が選挙を決定できる政府級の世論調査が必要な場合。次に、有権者に登録オフィスに来て投票を申請してもらい、準備された PIN 封筒から 1 つを選択してもらいます。この封筒には、投票時に入力できる長いハッシュが含まれています。したがって、主催者が詐欺を犯さない限り、有権者はできません。これにより、匿名性も確保されます。

于 2016-01-06T16:56:11.190 に答える
0

また可能性:

ユーザーに投票してメールアドレスを記入してもらいます。ユーザーは、投票を確認するためにクリックする必要があるリンクが記載された確認メールを受け取ります。

しかし、この方法では、ユーザーにもかなりのオーバーヘッドが生じます。

または、登録ユーザーと組み合わせてこれを行います (確認を強制されません)。

于 2009-02-24T12:22:21.470 に答える
0

これが古いスレッドであることは知っています。いずれにしても、すでに投票したユーザーを追跡するには、 evercookie ( http://samy.pl/evercookie/ ) を使用することをお勧めします!

于 2015-10-14T22:23:19.927 に答える
0

古い質問ですが、新しい方法に触れてみましょう。最近では、だまされた投票を回避するための多数の対策を実施するためにたゆまぬ努力をし、人々が導入した回避などの新しい方法に対抗するためにシステムを絶えず調整する多くの世論調査サービスがあります。それ自体が仕事です。

彼らはブランディングさえ提供します。そして、大企業がそれらを使用しているため、あなたの会社が世論調査をアウトソーシングするのが悪いように見えるわけではありません.


自分でやる必要がある場合。

言われているように、登録は唯一確実な方法です。だまされた投票を避けることが本当に重要な場合 (つまり、好きな色や些細な/楽しいものではない)、登録したメールに送信するリンクに投票を限定することもできます。

それでも絶対にだめというわけではありませんが (何もそうではありません)、少なくとも、アクセスできる正規の電子メール アドレスをユーザーに持たせるように強制します。これはユーザーが投票するのはそれほど面倒ではありませんが、登録、電子メールの待機、リンクの使用など、多くのだまされた投票を行うのは面倒です。

于 2020-03-01T17:47:38.570 に答える
-2

使用可能なすべてのソリューションにすでに名前を付けています。;)今決めるのはあなたの仕事です。

IPチェックとCookieチェックを組み合わせることをお勧めします。

于 2009-02-21T10:09:17.150 に答える