2

コメントまたは記事に対する重複した投票または評価をどのように認識できますか? たとえば、コメントに投票すると、そのコメントにはもう投票できません。

ユーザーがコメントに投票できるようにしたいのですが、この増分は db に保存されようとしています。保存する唯一のことは、db の正と負の投票の増分です。すべての訪問者がコメントに投票でき、各ユーザーは 1 回のみ投票できます。

クライアント側のソリューションはありますか?

4

4 に答える 4

2

Cookie または localStorage に基づくクライアント側のソリューションは、1 つのブラウザーを使用する正直なユーザーをカバーします。悪意のある人や技術的な知識のある人からの詐欺を防ぐためには何もしないので、信頼境界の反対側 (サーバー上) にもチェックを含める必要があります。

断固たる攻撃者投票箱に詰め込むことができますが、カジュアルな悪用を思いとどまらせる方法がいくつかあります。

他の人が述べたように、簡単な解決策の 1 つは、IP アドレスごとに 1 票を許可することです。ひどいアイデアではありませんが、なぜそれが良いアイデアではないのかについては、次のディスカッションを参照してください: IP アドレスごとに 1 票を制限しますか? 正当なユーザーが投票するのを防ぐことができ (2 人のルームメイトが個人用のルーターを共有していると考えてください)、投票用紙の詰め込みを止めることはできません (家で投票して、職場で投票することもできます)。AOL のような ISP を考えると、さらに複雑になります (一般的な通念によると、少なくとも、私はこれがまだ真実であると仮定しているだけです)。

キャプチャが必要になる場合があります。これにより、確認済みの電子メール アドレスを要求するのと同程度の保護が提供され、ユーザーの負担がわずかに軽減されます。もちろん、これらのアプローチはどちらも保証されていません。ドメイン名を所有する人は誰でも、一意の有効な電子メール アドレスを無数に持っています。投票結果に影響を与えるのに数十票で十分な場合、攻撃者は数十回のキャプチャ テストを実行するだけの忍耐力しか必要としません。

より洗練された解決策は、ユーザー アカウントを要求し、悪用の兆候を注意深く監視し、詐欺の疑いがあるアカウントを禁止することです。ただし、それはあなたが準備している範囲をはるかに超えていると思います. 誰かがそのようなものの無料の汎用実装を公開していない限り?

于 2012-11-28T07:11:27.433 に答える
1

ユーザーはブラウザで JavaScript を無効にし、Cookie を削除して、簡単に認識を回避できます。これは最善の解決策ではありません。これに加えて、サーバー側でユーザーの IP アドレスを確認する機能を追加するとよいでしょう。

于 2012-11-28T06:31:50.677 に答える
0

クッキーは、投票を制限し続ける良い方法だとは思いません。それらをクリアして、もう一度投票することができます。おそらく最良の方法は、登録ユーザーのみに投票を許可し、記事ごとにどこかに保管場所でそれらを追跡することです. 誰かが投票しようとすると、記事の「これに投票したユーザー」の配列を確認し、その配列に含まれていない場合は、投票を許可します。

于 2012-11-28T06:27:11.853 に答える
0

Ok。もう一つの悪い習慣。匿名の有権者を騙してみてください。彼が初めて投票するとき - あなたの DB に +1 を書き込み、現在の匿名ユーザーの追加投票額を Cookie に書き込みます。彼が再び投票したら、DB ではなく Cookie の量に +1 を追加して UI を更新します。そのため、ユーザーは 1 回しか投票できないことを知らず、Cookie などをクリアしようとしません。もちろん、この方法をコンテストに使用することはできません。統計にのみ使用できます。また、あなたの場合、登録ユーザーにこの Cookie を設定して、標準的な方法を使用して投票を確認するべきではありません。

于 2012-11-28T07:53:08.283 に答える