私は、スパムボット用のハニーポットトラップを使用して、フォーラムでコメントスパムを防ぐ方法に本当に興味があります。
ブラウザでCSSとJavaScriptがオフになっている場合はどうなりますか?
ハニーポットトラップには他の欠点がありますか?
すべてのハニーポットトラップは何を持っていると思いますか?
ユーザーエクスペリエンスを妨げない、他のスパム対策の選択肢を知っていますか。
ブラウザでCSSとJavaScriptがオフになっている場合はどうなりますか?
適切なハニーポットは、これらのいずれにも依存しません。理想的には、実際の非表示を必要としない隠しフォームフィールドを使用します。
ハニーポットトラップには他の欠点がありますか?
適切に行えば、ユーザーが気付く問題はないはずです。動作するために必要なオーバーヘッドはわずかですが、それは非常に小さくなければならないので心配する必要はありません。
ユーザーエクスペリエンスを妨げない、他のスパム対策の選択肢を知っていますか。
前の回答から :次のようないくつかのことを行うことができます(そして、1つ以上を行う必要があります)。
reCAPTCHA のようなCAPATCHAを使用します
ユーザーが5 + 3のような質問に答える必要があるフィールドを使用します。人間は誰でも答えることができますが、ボットはフィールド名に基づいてフィールドを自動入力するため、何をすべきかわかりません。そのため、そのフィールドは正しくないか欠落しているため、送信は拒否されます。
トークンを使用してセッションに入れ、フォームに追加します。トークンがフォームで送信されないか、一致しない場合、トークンは自動化され、無視できます。
同じIPアドレスからの繰り返し送信を探します。フォームがあまり多くのリクエストを受け取るべきではないが、突然ボットにヒットしている可能性がある場合、一時的にIPアドレスをブロックすることを検討する必要があります。
Askimet を使用します。スパムの識別に優れています。
推奨読書: スパムボットの仕組み
私が頻繁に提案するのは、時間ベースのキャプチャソリューションです。スパムは、できるだけ早くそこに到達することで最適に機能します。 GoogleがホストするReCaptchaをPHPセッションを使用した連絡先フォームの20秒の送信遅延に置き換え、スパムを大幅に削減しました。ユーザーの行動に関する分析データを使用して、遅延時間を考え出しました。
フォームボットは<input type="hidden">
フィールドを無視すると確信しています。最善の解決策は、一般的なデータ型を使用して、通常どおりテキスト入力を使用することです。 Webサイト、アドレス、郵便番号、ユーザー名など、現在使用していないものはすべて問題ありません。
「このフィールドが表示される場合は空欄にしてください」というメッセージを追加します。メッセージをラップし、CSSをdisplay:noneに設定してdiv要素に入力します。
残念なことに、ほとんどのスパムボットは非常にシンプルで愚かですが、多くの方が賢く、一般的なトリックを検出できます。フォームの性質に応じて、CAPTCHAまたはAkismetを使用した方が良い場合があります。