web-dev-qa-db-ja.com

制御しているサイトでスパムを防ぐにはどうすればよいですか?

これは、一般的なコミュニティWikiの質問であり、すべての非特定のスパム防止の質問に対処します。

質問がこの質問の複製として閉じられ、ここで提供された情報では十分な答えが得られないと感じた場合は、 Pro Webmasters Meta


この質問のために、スパムには次のものが含まれます。

  • 自動投稿
  • スパマーのサイトへのリンクを含む手動投稿コンテンツ
  • スパマーのサイトにアクセスするための指示の指示を含む手動投稿コンテンツ
27
danlefree

次のリストは、実装の相対的な容易さ、保守コスト、およびスパム防止の有効性別に整理されています。

ユーザー生成コンテンツをすべて無効にする

これは、サイト周辺のユーザーコミュニティの成長を損なう焦土ソリューションですが、スパムまたはスパム防止に対処する時間と労力を節約することも保証されています。

ユーザー生成コンテンツを無効にする以外に、すべてのスパム(またはその他の不要なコンテンツ)が表示されるのを防ぐ保証されたソリューションはありませんが、mostスパマーを阻止するソリューションでも十分ですサイトの訪問者にコンテンツをスパムとして報告するオプションを提供します。

ユーザーが作成したコンテンツ管理を外部委託する

Disqus などのサービスにより、ウェブマスターはユーザーが作成したコメントの審査、保存、公開を外部委託できます。 (注:サードパーティのサービスを使用するには、コメントが検索エンジンによってインデックス付けされるようにするために、 追加の構成 が必要です)

CAPTCHA

Wikipedia ごとに、CAPTCHAは「Computers and Humans Apartを完全に自動化した公開チューリングテスト」の略です。コンピューターがコンテンツを投稿するのを防ぐために設計された自動化されたテストはすべてキャプチャです。これには、ユーザーに画像から文字、数字、単語を読み取らせたり、単純なWordパズルや数学の質問をしたり、そうでなければ人であることを「証明」することが含まれます。

CAPTCHAの欠点は、

  1. CAPTCHAのほとんどの形式は、ユーザーに不快感を与えます。

  2. 100%保護されていません。有能なプログラマーが問題に十分な時間と労力を費やすことを決めた場合、これらのテストの多くはコンピューターで完了できることに注意してください。

Q&A CAPTCHA

小規模サイトで最も効果的なCAPTCHAは、質問と回答のCAPTCHAです。 Q&A CAPTCHAは、Webサイトがユーザーに回答を求める質問です。質問は、サイトを訪れた人なら誰でも知っていることですが、コンピュータープログラムではわかりません。 seoに関するサイトの質問例は、「SEOの略」です。この質問は、そのサイトの平均的な読者にとっては簡単に答えることができますが、どのコンピュータープログラムでもそうすることはできません。

注:「1と1が何であるか」のような質問はよく使用されます。スパムボットを作成する人は、こうした質問に正しく答えるようにプログラムします。

ただし、サイトに大量のトラフィックが発生した場合、スパマーはロボットにこれらの質問に自動的に回答するようにプログラムするため、Q&A CAPTCHAは効果的ではなくなります。

隠しフィールド

フォームがあり、スパマーがそれを使用できないようにする場合は、非表示フィールドを使用することでフォームを停止できます。これらの設定は非常に簡単です。フォームに冗長フィールドを追加し、css(またはJavaScript)で非表示にし、そのフィールドに値を入力しようとするものをすべて停止します。通常のユーザーはフィールドを表示できず、フィールドは非表示になっているため無視しますが、スパマーが使用するコンピュータープログラムは、CSSまたはjavascriptを処理しないため、そのフィールドに値を入力しようとします。 CSSまたはJavascriptをロードするスパムボットを打ち負かすために、フォームに空のフィールドを追加することができます。人間の訪問者は空のままにして、フィールドにデータを追加するボットを簡単にブロックできます。これにより、サイトが専門外に見える可能性があるという事実を忘れないでください。

トラフィックとコンテンツの分析

スパマーは、投稿するネットワークとマシンの数に限りがあります(通常、機能しなくなるまで使用します)。トラフィック分析ソリューションは、多数のホストからデータを収集し、投稿に既知のスパムコンテンツが含まれているか、既知のスパマーのホストまたはネットワークからのものかを判断します。

無料の(または安価な)さまざまなサードパーティのCAPTCHAおよびトラフィック分析ソリューションがあり、ほとんどのオープンソースコンテンツ管理ソフトウェアには、 Akismet および reCAPTCHA

スパムに一般的に含まれる単語をブロックする

Webサイトのスパムに一般的に正当なユーザーが使用しない(または使用しない)単語(「サイトへの無料リンク」など)が含まれていることに気付いた場合、ユーザーがそれらの単語を投稿できないようにすることは効果的なソリューションです。自分のサイトに投稿する際に問題がある投稿でこれらの単語を合法的に使用しているユーザーが心配な場合は、既存のユーザーからの投稿を無視するようにフィルターを設定できます。

rel="nofollow"

スパマーは、検索エンジンがたどるリンクを投稿できるサイトに焦点を当てる傾向があります(したがって、広告しているサイトの検索ランクが向上します)。

ユーザー生成コンテンツに含まれるリンクにrel="nofollow"を追加することで、サイトをスパマーに引き付けることができますが、ほとんどのスパムは自動化され、スパマーはそれを知る方法がないため、このアプローチは機能しない可能性がありますサイトはrel="nofollow"リンクを使用します。

ユーザーによる管理

コンテンツは誰でも投稿できますが、コンテンツがサイトに表示されると、スパムとしてフラグを付けて削除することもできます(このオプションは、訪問者がスパムコンテンツを比較的珍しいと感じた場合にのみ機能します:スパムが有用なコメントを超えることが許可されている場合、ほとんどの訪問者は迷惑メールを報告しません)。

ゲーミフィケーション

ゲーミフィケーションは、スパムを報告するようユーザーを動機付ける素晴らしい方法です。サイトに「フラグの重み」機能を追加することを検討してください。スパムユーザーが報告するほど、ポイントが増えます。これにより、スパムの捜索がより楽しくなり、スパムを自慢する権利を報告する人々が得られます。これにより、ユーザーはスパムを報告するようになります。

管理者による管理

人間は、投稿されたコンテンツのすべてのアイテムをサイトに公開する前に確認する必要があります-これにより、スパムの投稿は防止されませんが、サイトの訪問者へのスパムの表示は防止されます(したがって、人間のスパマーに対するサイトの価値が低下します) 。

ユーザー登録

ユーザー登録はCAPTCHAよりも改善されます。ユーザーは、都合の良いときにコメントを許可される前に、人間を1回であることを証明することだけを強制されるためです。特定のユーザーまたはユーザーグループ(ユーザー名、電子メール、IPアドレス、またはその他の識別要素によって識別される)によって作成されたスパムの削除を強制しやすくします。

中程度の新規ユーザー

管理者はすべての投稿を承認する代わりに、新しいユーザー登録を確認して、ユーザーの登録が特定されたスパマーまたは自動スパムボットと一致しているかどうかに基づいてユーザーを承認するかどうかを決定できます。

新しいユーザー機能を制限する

人間のスパマーは、アカウントにスパムを自由に投稿できない場合、作成したアカウントに戻ることをほとんど覚えていません-新しいユーザーが一定数の投稿を作成する必要がある(コミュニティがスパムにフラグを立てる機能を持っている場合)および/またはセットを待つリンクの投稿または複数の投稿の制限が解除されるまでの時間。

ユーザーにメンバーシップを請求する

メンバーシップに課金する場合、料金が少額であっても、スパマーはメンバーシップのコストとサイトにスパムを投稿する価値とを比較検討する必要があります(より簡単なターゲットを優先してサイトを通過させます)。

招待のみ

他のユーザーから招待された人だけが登録できるようにすると、スパムがいくつか削減されます(通常、人間はロボットを招待しません)。

以下は Project BOTCHA 、Drupalからのものです。

ハニーポット

honeypot-trap の実装。その要点は、フィールドが特定の値でフォームに追加され、JSによって変更されることです。スパムはあらゆるフォーム送信であり、その計算値は必要な値とは異なります。

HoneyPot2

上記と同じですが、特定のフィールドの値ではなく、CSSからのデータを計算のソースとして使用します。

ObscureUrl

HoneyPot2と同様:JSによって構築されたものが必要性と比較されます。違いは、初期値がGETパラメーターを介して渡されることです。

結論

ほとんどのウェブマスターは、上記のソリューション(ユーザー生成コンテンツを許可しないことを除く)の組み合わせがサイトに最適であり、少なくとも1つのソリューションmust自動化されたスパムが訪問者の議論を妨げないように実装されます。

27
danlefree

最近削除お問い合わせフォームからのスパムを非常にシンプルな実装で。 HTMLフォームに「URL:」というラベルの付いた入力を追加し、実際のユーザーには見えないようにしました。次に、フォームプロセッサで、値があるかどうかを確認し、それに応じて動作します。

スパムボットは常に餌をとります。スパムサイトへのURLを挿入します。私たちのスクリプトはそれを見て、コメントを破棄します(実際、環境にやさしい会社になろうとしているので、ビットをリサイクルしています)。しばらくの間、問題のあるコメントをレビューのためにデータベーステーブルに保存していましたが、結果をどこにでもメールで送信することを拒否していました。それは私達がそれが働いたことを知っている方法です。

この簡単な方法で、1日に約30件以上のスパム「お問い合わせ」メッセージからゼロになりました。

何を選んでも幸運を祈ります!

5
WebDevKev

匿名の投稿を一時的に有効にするフォーラムがあります。 Captchaを使いたくなかったのは、私自身が読みづらいことが多く、人々がコメントするのを妨げる可能性があるためです。スパムを防ぐために、着信メッセージをキャッチするために Akismet を使用しました。 Akismetは防弾ではありませんが、私の人生をずっと楽にしてくれました。

ただし、誤検知に注意する必要があります。それで、私がしたことは、投稿オブジェクトに「スパム属性」を作成し、それをAkismetの戻り値に設定することでした。投稿にスパムのマークが付けられる場合、自分自身とメールを送信し、その後スパムかどうかを判断できます。

1
Dofs

MediaWikiをご覧ください。
Extension:Moderationを検索
この拡張機能は、管理しているサイトでスパムを防ぐのに役立ちます。
このMediaWiki拡張機能を何度も使用しました。
そして、ボットによるスパム記事の作成を阻止します。

0
jehovahsays