3

同じユーザーからの乱用/複数の投票を最小限に抑えるPHPでの投票システムの作成について、stackoverflowを読んでいますが、私の質問に対する答えに出くわしていません.

ユーザーがエントリに投票または「いいね」するために登録する必要がないアプリケーションがあります。明らかに、乱用を最小限に抑えたいと考えています。IP アドレスごとに投票を制限したくありません。これは、一部の組織 (私の組織を含む) が共有 IP アドレスを使用しているためです。

これまで認証されていないシステムでセッションを使用したことはありませんが、このアプリケーションはエントリ投票を中心にしているため (純粋に娯楽目的で使用されますが、乱用を最小限に抑えたいと考えています)、このアプローチが機能するかどうか疑問に思っていました。パフォーマンスへの影響、およびこの方法でセッションを使用することさえ可能かどうかなどの欠点がありました:

  • ウェブサイトの読み込み時にセッションを開始する
  • セッションごとにアイテムごとに 1 票を許可する

これが悪い考えである場合、私の代替オプションは、IP アドレスごとに妥当な数の投票 (たとえば 25) を許可するか、同じ IP アドレスからの投票間に時間制限を設けることです。

皆さんは何をお勧めしますか? ユーザーにとって最も迷惑なことは何だと思いますか? ブラウザを再起動したり、投票の間に 5 分間待機したり、Cookie をクリアしたりしますか?

4

4 に答える 4

5

ユーザー認証なしで「本格的な」投票システムを作成する方法は実際にはありません。他のすべてのオプションには欠陥があります。

  • ブラウザを閉じるとセッションが終了するので、もう一度開くだけで新鮮です
  • Cookie を使用するのがベストですが、Cookie を消去したり拒否したりすることもできます
  • IP アドレスが信頼できない、および/または適用できない
于 2010-04-21T08:48:48.257 に答える
1

ブラウザーを閉じて再度アクセスすると投票できるようになるため、セッションのみはお勧めできません。セッションを「ヘルプ」として使用できます。最適なオプションは、IP 制限を使用することです。また、Cookie を使用することもできますが、ブラウザから Cookie を消去できるため、これも単なる「ヘルパー」です。あなたが言ったようにIP制限を使用することをお勧めします.1つのIPは25回投票でき、Cookieを使用してコンピューターが複数回投票するのを制限します. したがって、ユーザーが複数回投票したい場合、Cookie を削除できますが、25 回を超えて投票することはできません。

于 2010-04-21T08:46:37.980 に答える
1

私は、クッキーが最良の選択であるという kemp に同意します。さらに、セッションも Cookie を使用します。違いは、ブラウザを閉じるとセッション Cookie が削除されることです。「単純な」Cookie は、有効期限が切れると削除されます。この場合、これは「より良い」方法です。

IP アドレスについて言えば、ユーザーはプロキシを使用して「IP フィルタリング」をバイパスできます。

投票が終了すると、誰かが結果を確認して、疑わしいものがないかどうかを確認する場合があります (1 つの IP から 5 分間で 100 票など)。これにより、より真実の結果を得ることができます。

于 2010-04-21T08:56:28.647 に答える
0

Cookie と apc/memcached などのサーバー キャッシュ メカニズムの両方を使用できます。同じキー/Cookie名を使用して投票結果をCookieとapcキャッシュに保存し、両方の存在を確認します。Cookie が削除されても apc キーがまだ存在する場合は、誰かが再投票しようとしていることがわかり、Cookie をリセットして apc キャッシュ値の有効期間を延ばすことができます。

防弾ではありませんが、データベースがない場合は良い解決策だと思います。サーバーの RAM が不足すると、apc キャッシュがフラッシュされることに注意してください。

于 2012-01-04T11:12:35.950 に答える