6

私がマスターしている Web サイトにフォーラムがあり、そこには毎日 pron スパムが届きます。現在、スパムを削除し、IP をブロックしています。しかし、これはうまくいきません。ブロックされた IP のリストは急速に増加していますが、フォーラム内のスパム投稿の数も増加しています。

フォーラムは完全に私自身のコードです。PHPとMySQLで構築されています。

スパムを阻止する具体的な方法は何ですか?

編集 言い忘れたことは、未登録ユーザーが投稿できるようにフォーラムを開く必要があるということです。ブログのコメントのようなもの。

4

14 に答える 14

12

私が書いたゲストブックアプリでは、スパムのほとんどを防ぐ2つの機能を実装しました。

  • セッションの最初のリクエストとしてPOSTを許可しない

  • 投稿時に有効なHTTPリファラーが必要

于 2009-01-27T20:48:30.147 に答える
5

私の経験では、最も簡単な防御は、「非標準」なことをすることから生まれます。サイトを非標準にすると、自動化されたスパムをサイト専用にコーディングする必要がありますが、これは(不快感を与えることなく)おそらく努力する価値がありません。スパムが人間のスパマーからのものである場合、正当な投稿者を阻止することなくできることは実際には何もないことに注意してください。したがって、目標は、「標準」の投稿を破棄するソリューションを見つけることです。つまり、「フォーム全体に入力して送信をプッシュする」ということです。

あなたが試すことができることを思い浮かぶいくつかの例:

  • 「ウェブサイト」や「ホームページ」など、スパマーが入力したい名前の非表示のフォームフィールドを用意します。フォームフィールドに入力された場合は、メッセージを投稿するのではなく破棄します。これは、非表示のフィールドも含め、フォーム全体に自動的に入力するボットであるためです。
  • 「実際の」キャプチャを使用する必要はありませんが、「次の単語を逆方向に入力してください:<ランダムな逆方向の単語>」や「このWebサイトのドメイン名は何ですか?」などの単純なものでも使用できます。人間にとっては簡単ですが、何を入力するかを理解するにはかなり複雑なボットが必要になります。
于 2009-01-27T21:17:05.520 に答える
5

どちらが機能するかを知る 1 つの方法は、フォームを送信する前に JavaScript を使用することです。たとえば、メソッドを GET から POST に変更します。;) スパムボットは JavaScript の実行が苦手です。もちろん、これは Javascript を使用していない人がサイトを使用できないことも意味します。;) (注: 私は知りません)

于 2009-01-27T20:40:32.177 に答える
4

キャプチャを使用できます。PHPCaptchaのようないくつかの優れたスクリプトがあるか、 Akismetのようなスパム コントロール サービスを使用します。これらにはPHP APIがあります。

于 2009-01-27T20:41:35.027 に答える
2

常に「オレンジ」であるCAPTCHAを含めます。

于 2009-01-27T21:30:33.073 に答える
2

スパムはボットまたは人間によるものである可能性があります-ボットの可能性が高くなります。

ボットを停止するには、Javascriptが入力された非表示フィールドに入力します。サイトに合わせてカスタマイズされていない標準の愚かなボットが入力に失敗する可能性は99.5%です。

正しく入力できない場合は、Javascriptが必要かどうかをメッセージで伝え、他の方法(キャプチャや登録など)で投稿する機会を与えてください。そうすれば、スパムボットではない匿名ユーザーは(ほとんど)問題なく投稿でき、ほとんどのスパムボット(特定のサイトに合わせて調整されていない)は投稿できません。

IPアドレスをブラックリストに登録したり、サードパーティのブラックリストを使用したりしないでください。誤検知が発生するだけです。ほとんどすべてのボットは、(一部の)正当なユーザーと同じIPアドレスを使用します。


もう1つのトリックは、CSSでは見づらい名前のテキストフィールドを入力することです。このフィールドに何かを入力すると、ボットと見なされます。

于 2009-01-27T21:32:35.533 に答える
2

この質問を見てみることをお勧めします。これには、邪魔にならないキャプチャを実装する方法を説明するいくつかの回答があります。

考慮すべきもう 1 つのことは、大規模なスパムを防ぐために、投稿の間に時間を設けることです。

于 2009-01-27T20:42:37.663 に答える
2

驚くほど効果的であることがわかったのは、あまりにも多くの URL (たとえば 5 つ以上) を含むコメントを禁止することです。それ以来、コメントスパムはゼロになりました。

編集:上記を書いて以来、リンクが 1 つだけのコメント スパムが繰り返し発生しています。私はいくつかのハニーポット フィールドを追加しましたが、数か月間、スパムのコメントはありませんでした。

于 2009-04-05T16:11:51.690 に答える
0

スパムは実際には経済学の問題であるため、単一の答えはありません。誰かが自分のコンテンツをWebに掲載することはどれだけの価値があるかです。ただし、かなり良いと思われるソリューションがいくつかあります

  • 要約
  • CCSを使用して、ロボットが入力する非表示フィールドを作成します
  • ロボットが同じフォームを何度も使用できないように、フォームに時間固有の非表示フィールドを作成します。
于 2009-01-27T21:30:43.837 に答える
0

キャプチャは間違いなく最も簡単な方法です-ボットプルーフなものが必要な場合はKittenAuthを試してください(今回はパンダを入手しましたが)

于 2009-01-27T20:52:38.797 に答える
0

登録したメール アドレスに送信されたメールに返信するまで、投稿を許可しないでください。多くのフォーラムやメーリング リストが、新しいユーザーの特定のメール アドレスに送信される固有のメール アドレスまたは Web URL を生成し、ユーザーはメールに返信するか、リンクをクリックして登録を完了する必要があります。

于 2009-01-27T20:37:08.627 に答える