22

アカウントの作成を強制することなく、自分のサイトに投票システムを実装したいと考えています。彼らは最終的に、一意の ID を持つコンテンツに対して賛成/反対の投票を行うことになります。

  • IP/ID を使用してテーブルにエントリを保存できることはわかっていますが、同じ IP から複数のユーザーがアクセスしている場合はどうなりますか?
  • 外部 IP に関連付けることなく、訪問者を一意に識別する方法はありますか?
  • GUID を作成した場合、そのマシンの Cookie に保存します。後で同じ IP を持つ同じコンピューターで取得できますか? 別のIP?

これらの質問についての考え、またはより良いアプローチへの洞察をいただければ幸いです。

4

9 に答える 9

23

はい、Cookie を使用して有効期限をかなり先に設定できます。ただし、キャッシュをクリアして再度投票することを妨げるものは何もありません。

あなたの最善の策は、Cookie を使用し、互いに 15 分以内に同じ IP からの投票を許可しないことです...登録せずに行うことが最善です。

于 2009-06-10T22:02:13.227 に答える
9

IP だけでなく、ユーザーを特定することもできます。たとえば、IP + リクエスト ヘッダー情報全体 (ブラウザ、バージョン番号、機能など) を含めてハッシュすることができます。これにより、多かれ少なかれユーザーを一意に識別できます (ただし、残念ながら 100% ではありません)。

于 2009-06-10T22:03:44.533 に答える
4

一度も訪問したことがない訪問者と、訪問したがクッキーを削除した訪問者とを、クッキーを使用して区別することは原理的に不可能です。その結果、Cookie ベースのソリューションは、些細な不正投票に対して脆弱になります。

この現実を、 1990 年代半ばに WFMUのトップ 100 サイトを立ち上げたJ Henry Lowengardの精神で受け入れることを検討してください。もっと!"

実際、今すぐそこに行って、 StackOverflow に賛成 (または反対) に投票してください!

于 2009-06-10T22:01:30.620 に答える
4

OpenIdを使用してログインできるようにすることができます。これにより、既存のアカウントを使用して投票できるようになり、新しいアカウントを作成する必要がなくなります。

Google や Yahoo などには、ユーザーを認証できるサービスがあります。

何らかの方法でユーザーを認証しないと、投票システムが悪用される可能性があります。

于 2009-06-10T22:01:52.650 に答える
3

IP + ユーザー エージェントは、IP よりもはるかにユニークです。それがあなたの目的に適しているかどうかはわかりません。Cookie を送信すると、IP に関係なく、Cookie が残っている限り、そのコンピューターから返されます (同じブラウザーを使用している場合)。ただし、ユーザーはいつでも Cookie を削除できることに注意してください。 .

不正投票を防ぐためにこのシステムを使用することを少しでも心配しているのであれば、彼らにアカウントを持たせることを回避できないとは思いません。

于 2009-06-10T22:03:49.133 に答える
2

私は今同じ問題を考えています。私の可能なアプローチは次のとおりです。

  • (A)少なくとも15分間(SESSIONSを使用して)サイトにいた人々からの投票を受け入れることができます(ユーザーがブログ/サイトの記事を読むのにおよその時間になる可能性があります)。彼らが投票すると、タイマーは次の投票のためにリセットされます。したがって、この方法では、ユーザーのCookieを削除しても意味がありません。

  • (B)未登録の人からの投票を受け入れ、その人の電子メールアドレスを取得して、投票への確認リンクを送信することができます。彼らが彼らの電子メールボックスの確認リンクをクリックするとき、あなたは実際に投票を数えることができます。メールアドレスごとに投票するようなものです。

  • (C)(A)と(B)の組み合わせ。このようにして、15分ごとに1人のユーザーに確認リンクを送信することを確認できます。これはそれほど多くはありません:)

于 2013-01-01T13:08:46.177 に答える
1

私はこれが古いことを知っていますが、ちょうどここに来て、アイデアがありました..

https://panopticlick.eff.orgのようなものはどうですか? 投入できるさらに別のもの..

(これがオフラインになった場合: これは、通常のものに加えて + ブラウザ プラグインの詳細 + タイム ゾーン + 画面サイズと色深度 + システム フォント + スーパークッキーで構成される累積フィンガープリントです)

于 2013-09-04T20:35:04.290 に答える
1

Evercookieまたは同様のソリューションを試すことができます。

于 2013-01-01T13:42:08.403 に答える
0

別のオプションは、セッションを使用することです。セッションIDをIPと組み合わせて保存できます。これにより、複数の IP を取得できますが、異なるセッションから取得できます。その唯一の欠点は、ブラウザの切り替えの可能性です。クッキーを追加してトリオにすることで、フラッディングを取り除くことができます.

私は過去にIPアドレスだけでこれを行ったことがありますが、これは小規模で機能しているようです.

于 2012-01-19T17:56:08.863 に答える