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


27

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

あなたの質問がこの質問の複製として閉じられ、ここで提供された情報では十分な回答が得られないと感じた場合は、Pro Webmasters Metaでディスカッションを開いてください。


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

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

回答:


27

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

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

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

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

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

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

CAPTCHA

パーウィキペディア、CAPTCHAは、「別にコンピュータと人間を伝えるために完全に自動化された公開チューリングテスト」の略です。コンピューターがコンテンツを投稿するのを防ぐように設計された自動化されたテストはすべてキャプチャです。これには、ユーザーに画像から文字、数字、単語を読み取らせたり、簡単な単語パズルや数学の質問をしたり、人であることを「証明」することが含まれます。

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およびトラフィック分析ソリューションがあり、ほとんどのオープンソースコンテンツ管理ソフトウェアには、AkismetreCAPTCHAなどのサービスを使用するための統合モジュールが含まれています。

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

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

rel="nofollow"

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

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

ユーザーによる管理

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

ゲーミフィケーション

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

管理者による管理

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

ユーザー登録

ユーザー登録はCAPTCHAよりも改善されます。ユーザーは、都合の良いときにコメントを許可される前に一度だけ人間であることを証明する必要があるためです-これは技術的に異なる形式のスパム防止ではありませんが、特定のユーザーまたはユーザーグループ(ユーザー名、電子メール、IPアドレス、またはその他の識別要素で識別される)を実施するのが簡単です。

中程度の新規ユーザー

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

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

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

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

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

招待のみ

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

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

ハニーポット

ハニーポットトラップの実装。その要点は、フィールドが特定の値でフォームに追加され、JSによって変更されることです。スパムとは、フォームの送信であり、その計算値は必要なものとは異なります。

HoneyPot2

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

ObscureUrl

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

結論

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


1
レスポンスで+1!「ユーザーによるモデレート」メソッドの一部としてスパムを報告するユーザーに何らかの報酬システムを実装できることを付け加えます。現在作成中のアプリケーションでは、スパマーを正常に報告したユーザーは、プロファイルに表示される自慢する権利のような「スパムキラーポイント」を取得します。さらに、サイトで通貨などのこれらのポイントを使用して、プロファイル検索でより高いリスティング結果を達成できます。もちろん、これにより悪用の可能性が開かれるため、そのような形式のスパムが発生した場合に対処する方法を考えなければなりません。
JakeRow123

@ JakeRow123ゲーミフィケーションに関するセクションを追加しました。気軽に編集して、考えを追加してください。

5

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

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

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

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


入力<form>には、以下を含めます。<p class = "antispam">このフィールドを空のままにします:<input name = "url" width = "200" /> </ p>処理スクリプトには、次のようになります。 (isset($ _ SESSION ['url'])&& $ _SESSION ['url'] == ''){mail($ to、$ subject、$ body、$ headers); }
WebDevKev

1

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

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


3
これはキャッチオールコミュニティWikiの質問と回答です。重複する質問を締めくくる際に使用するスパム防止に関する一般情報の主な焦点です。必要に応じて、推奨事項をリストにマージしてください。
danlefree

1アキスメットはかなり良い仕事をやるようですが、それらすべてを取得しdosntとブロック合法的なコメントが、時間の99%がその権利somtimes
SAM

0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.