63

現在、私たちは非常に順調に進んでいる大会を運営しています。残念ながら、エントリに自動的に投票するスクリプトを実行している詐欺師がすべてビジネスに戻っています。データベースのエントリを手で見て、いくつかの詐欺師をすでに確認しました。現在、ユーザーベースが成長するにつれて、それらを識別するのはますます難しくなっています.

これまでの取り組み:

  1. IP とブラウザを保存し、その組み合わせを 1 時間ブロックします。クッキーは、これらの人に対しては役に立ちません。
  2. 破損したキャプチャも使用しています

PHP スクリプトを使用してデータベース内のパターンを見つける方法や、パターンをより効率的にブロックする方法を知っている人はいますか?

どんな助けでも大歓迎です...

4

19 に答える 19

79

直接フィードバックの排除

これは、他の多くの方法と組み合わせることができる、より一般的な戦略です。スパマーが成功したかどうかを知らせないでください。

現在の結果を完全に非表示にするか、絶対投票数なしでパーセンテージのみを表示するか、投票の表示を遅らせることができます。

  • プロ:すべての方法に対して良い
  • 短所:詐欺が大規模な場合、パーセンテージ表示と遅延は効果的ではありません

投票フラグ

また、一般的な戦略。投票がスパマーによるものであると推測する何らかの理由がある場合は、その投票をカウントして無効としてマークし、最後に無効な投票を削除します。

  • プロ:検出可能なすべてのスパム攻撃に対して有効
  • 短所:投票を歪曲し、設定が難しく、誤検知

キャプチャ

CAPTCHAを使用します。キャプチャが壊れている場合は、より良いものを使用してください。

  • 長所:すべての自動化されたスクリプトに対して有効です。
  • 短所:咽頭検査に対して役に立たない

IPチェック

ある期間にIPアドレスが投じることができる投票数を制限します。

  • プロ:ブラウザで常にF5を押すランダムな人物に対して有効
  • プロ:実装が簡単
  • 短所:プロキシサーバーを使用するPharyngulationおよび複雑なスクリプトに対しては役に立ちません。
  • 短所:IPアドレスが多くの異なるユーザーにマップされることがあります

リファラーチェック

1人のユーザーが1つのIPアドレスをマップすると想定した場合、そのIPアドレスで投票する場合は数を制限できます。ただし、この仮定は通常、個人世帯にのみ当てはまります。

  • プロ:実装が簡単
  • 長所:単純な咽頭炎に対してある程度は良い
  • 短所:自動化されたスクリプトによって非常に簡単に回避できます

メール確認

メール確認を使用し、メールごとに1票のみを許可します。データベースを手動でチェックして、使い捨ての電子メールを使用しているかどうかを確認します。

+fooメールアドレスでユーザー名に追加できることに注意してください。username@example.com両方ともusername+foo@example.com同じアカウントにメールを配信するので、誰かがすでに投票したかどうかを確認するときは覚えておいてください。

  • プロ:単純なスパムスクリプトに対して有効
  • 短所:実装が難しい
  • 短所:一部のユーザーはそれを気に入らないでしょう

HTMLフォームのランダム化

選択の順序をランダム化します。彼らが見つけるのにしばらく時間がかかるかもしれません。

  • プロ:とにかく持ってうれしい
  • 短所:一度検出されると、回避するのは非常に簡単です

HTTPS

投票を偽造する方法の1つは、Firefoxなどの有効なブラウザからhttpリクエストをキャプチャし、スクリプトで模倣することです。これは、暗号化を使用する場合ほど簡単には機能しません。

  • プロ:とにかく持ってうれしい
  • プロ:非常に単純なスクリプトに対して有効
  • 短所:設定が難しい

プロキシチェック

スパマーがプロキシ経由で投票する場合は、X-Forwarded-Forヘッダーを確認できます。

  • Pro:プロキシを使用するより高度なスクリプトに対して有効
  • 短所:一部の正当なユーザーが影響を受ける可能性があります

キャッシュチェック

クライアントがキャッシュされていないすべてのリソースをロードするかどうかを確認してください。多くのスパムボットはこれを行いません。私はこれを試したことがありません。これは通常、投票サイトによってチェックされないことを知っています。

例としては<img src="a.gif" />、htmlに埋め込む場合があり、a.gifは1x1ピクセルの画像です。次に、リクエストのhttpヘッダーを。で設定する必要がありGET /a.gifますCache-Control "no-cache, must-revalidate".htaccess次のようなファイルを使用して、Apacheのhttpヘッダーを設定できます。(Jaccoに感謝)

  • プロ:私が知る限り、珍しい方法
  • 短所:セットアップが少し難しい

[2010年9月22日編集]

Evercookie

  • いわゆるevercookieは、ブラウザベースのスパマーを追跡するのに役立ちます
于 2010-02-25T09:56:50.243 に答える
6

ブラウザのフィンガープリントを試しましたか? EFF のこのオープン ソースを確認してください: https://panopticlick.eff.org/ 世界で 500 ~ 1500 人に似た 1 人の人物を特定するために使用できます (!)。

于 2010-02-25T11:02:01.360 に答える
4

投票フォームにキャプチャを追加できます。また、電子メールによる確認を要求することも役立ちます

于 2010-02-25T09:56:43.593 に答える
2

あなたが本当にそれについて心配しているなら、あなたは電子メール検証のような何かをしなければなりません、それはほとんどの詐欺師をブロックするのに十分かもしれません。

また、NATの背後にいる複数の人々が同じオプション(たとえば、好きな学校)に投票したいかどうかにも依存します。

作成するスキームはすべてゲーム化できます。

編集:他の誰もが示唆しているように、 reCAPTCHAなどのCAPTCHAを使用して、自動ボットをブロックし、人間が投票を繰り返す可能性を低くすることができます。人間が投票する可能性をまったく低くするという犠牲を払って。

于 2010-02-25T09:57:13.923 に答える
2

Asirra をチェックしてください: http://research.microsoft.com/en-us/um/redmond/projects/asirra/ まだベータ版ですが、かなりクールです。

于 2010-02-25T17:29:52.943 に答える
2

Vote to Promotionパターン(ご存知かもしれません) には、ゲームを軽減する方法に関するセクションがありますが、完全に回避するのは難しいものです。これまでのあなたの行動を考慮して、重み付けを使用することを検討します。たとえば、一定期間の妥当な投票レベルを考えます。たとえば、1 時間あたり 10 票 (ガイドではなく単なる例です) とします。余剰票の場合、次の 10 票を 90% で重み付けします。 (つまり、9 だけカウント)、80% で次の 10 など。これは、このパターンでのゲームに関する Yahoo のアドバイスです。

コミュニティ投票システムには多くの課題があります。特に、コミュニティのメンバーがさまざまな動機からシステムを操作しようとする可能性があります。

  • 悪意 - おそらく、コミュニティの別のメンバーとそのメンバーの貢献に対するものです。

  • 獲得 - プール内の特定のアイテムの配置に影響を与えることで、金銭的またはその他の報酬を実現すること)

  • または包括的な議題 - 投票されているコンテンツの実際の品質をほとんど考慮せずに、常に特定の視点または政治的声明を促進します.

この種の悪用を防ぐ方法はいくつかあります。ゲームを完全に止めることはできませんが。虐待者の努力を最小化または妨害するいくつかの方法を次に示します。

  • 人ではなく、物に投票してください。Yahoo の一般的な戦略に沿って、別のユーザーに直接投票する機能をユーザーに提供しないでください。そのユーザーの外見、好感度、知性、またはその他のものです。コミュニティが個人の貢献について投票することは問題ありませんが、その人物の質について投票することはできません。

    • 投票のレート制限を検討してください。o 特定の期間内に特定の数の投票のみをユーザーに許可します。o ユーザーが特定のユーザーのコンテンツに反対票を投じる回数 (または投票率) を制限します。(アドホミネム攻撃を防ぐため。)

    • 投票数以外の要素も考慮してください。たとえば、Digg は、提出物が受け取った投票数だけで Digg スコアを計算するわけではありません。彼らのアルゴリズムは、「記事のソース (ブログの再投稿か元の記事か)、ユーザー履歴、記事が該当するカテゴリのトラフィック レベル、およびユーザー レポート」も考慮します。このアルゴリズムは頻繁に更新されます。正確なアルゴリズムをコミュニティから秘密にしておくことを検討するか、因数分解された入力について一般的な用語でのみ議論してください。

  • 関係情報が利用可能な場合は、それに応じてユーザーの投票に重みを付けることを検討してください。おそらく、正式な関係を持つユーザーが互いの提出物に投票することを禁止します.

これは現在 Web で人気のあるパターンですが、使用するコンテキストを考慮することが重要です。コミュニティ投票を可能にする非常に活発で人気のあるコミュニティ (Digg はその好例です) は、特定の精神の否定性 (意地悪なコメント、独断的な派閥、「異常な」視点に対するグループ攻撃) を生み出すこともあります。

于 2010-02-25T10:31:24.980 に答える
1

二重投稿で申し訳ありませんが、同じ投稿に2つのURLを投稿することは許可されていません...

独自のトラッキングを構築することを検討している場合は、このリンクからインスピレーションが得られる可能性があります。https : //panopticlick.eff.org/トラッキングCookieがなくても、多くのブラウザを一意に識別できることがわかります。投票ボットが非常に具体的な指紋を与える可能性があると思いますか?

于 2010-02-25T17:41:22.810 に答える
1

ボットが投票するのを防ぐために、CAPTCHAを使用できます。

于 2010-02-25T09:57:45.623 に答える
1

頭に浮かぶのは、キャプチャを使用することだけですReCaptchaサービスのような写真とノイズのある手の込んだもの、または「7プラス3とは何ですか?」のような非常にシンプルで目立たないもののいずれかです。または(米国にお住まいの場合)、「大統領の名前は何ですか」、誰もが答えることができる簡単な常識的な質問。それらを頻繁に変更する場合、これは従来の画像ベースのCAPTCHAよりも効果的である可能性があります。

于 2010-02-25T09:58:47.837 に答える
1

CAPTCHA は特効薬ではありません。ユーザーは、スクリプトに CAPTCHA を表示させ、少なくとも 1 分間に数回の投票で手動で解決することができます。

ここで説明する他の手法と組み合わせて使用​​する必要があります。

于 2010-02-25T10:54:59.453 に答える
1

Django のようにハニーポット フィールドを追加できます。ほとんどの場合、これはあなたの競争を故意に変えようとする不正行為者からあなたを守ることにはなりませんが、少なくとも「ドライブバイ」スパム送信者に対処する必要が少なくなります.

于 2010-02-25T13:17:30.633 に答える
1

だから、誰もが何かを獲得できるコンテストを作りたいと思っていて、コミュニティ主導の評価システムを使いたいと思っているなら... ここで私はいくつかの経験を共有します:

悪い点:
1) まず、100% の安全を確保することはできません
2) ナンセンスな評価をすべて除外する大量のユーザーにリーチするのは非常に困難です 3) その場合、星の評価は忘れてください...彼らは常に 5 つ星のいずれかですまたは 1 つ星

良い
点 1) 彼らがどこに立っているかについてオリエンテーションを与えないでください... 「場所ごとの順序」ビューを、トップ 100 のランダムなプレゼンテーションに置き換えました (トップ 30 だけが価格を獲得します)... これは本当に役に立ちました。多くのユーザーは、自分の立ち位置がわからなくなるとすぐに興味を失いました。

2) 次のような投票を許可しないでください: 1x5_Stars 40x1_Star... 公正な方法で投票するユーザーを許可するだけです...

3) 彼らのほとんどは少しばかげた行動をします...ログにそれらが表示され、誰が公平に投票し、誰が不公平に投票したかを追跡できます...パターンを検索します...

**幸運を ;-) **

于 2010-03-18T22:10:35.873 に答える
0

CAPTCHAは常に優れていますが、一部のユーザーにとっては「邪魔」になる可能性があります。

reCAPTCHAはかなり使用されているサービスです

于 2010-02-25T09:57:20.863 に答える
0

1.recaptchaを使用する
2. はい、投票オプションをランダム化しますが、次のようにはなりません:
      -> vote_id_1 から asdsasd_1、grdsgsdg_2 へ、
      代わりにセッション変数を使用して、投票フォームでvote_id_1 から asgjdas87th2ad へのマスクを設定します。

于 2010-02-25T16:31:30.887 に答える
0

私は、CAPTCHA、IP 検証、および LSO (Flash Local Shared Objects、一般の人にとっては見つけにくく、削除しにくい) を組み合わせて使用​​します。

于 2010-02-25T13:56:37.347 に答える
0

投票を送信する前にopenidreCaptchaでログインしたユーザーのみを許可し、同じIPアドレスで送信者リストを監視するのはどうですか.

于 2010-02-25T10:10:04.203 に答える
0

特定のイベントの周期性を探す時系列分析のようなポストホック確率分析はどうでしょうか? 次に、そのようなイベントの各グループに確率を割り当てて、それが 1 人の人物に属し、確率レベルを超えてそのようなイベントのグループをすべて破棄するか、何らかの重み付けを使用して確率に応じて重みを下げることができます。(ip, browser, vote)

R を見てください。便利な分析パッケージがたくさん含まれています。

于 2011-07-23T09:48:41.243 に答える
0

CAPTCHA と電子メールの組み合わせを使用します。ユーザーはメールで GUID 付きのリンクを受け取ります。これは、投票しようとするユーザーごとに一意である必要があります。www.votesite.com/vote.aspx?guid=..... このリンクを使用して、投票が確認されるかどうかを確認します。データベースでは、電子メール アドレスと GUID の組み合わせが一意であることを確認します。

于 2010-02-25T12:54:07.217 に答える
0

彼らが使用している電子メールのドメインの詳細を確認してください。同じ問題が発生し、それらすべてが同じ登録者に登録されていることがわかりました。ここに書きました: http://tincan.co.uk/659/news/competition-spammers.html

ここで、登録に使用された電子メールの DNS 情報をフィルタリングします。

于 2011-10-11T13:49:41.417 に答える