私たちのサイトでこれらのスパムボットを取り除くにはどうすればいいですか?
すべてのサイトは、ある時点で spambots の犠牲になります。それをどのように扱うかは顧客に影響を与える可能性があり、ほとんどのソリューションは一部の人々がフォームに記入するのを思いとどまらせることができます。
これがハニーポット技術の出番です。ユーザーにキャプチャを入力させたり、フォームに入力するために他のフープをジャンプさせることなく、スパムボットを無視できます。
この投稿は、他の人がウェブサイトのフォームにハニーポットトラップを実装するのを純粋に支援するためのものです。
クライアントのすべてのウェブサイトに以下のハニーポットを実装して以来、すべてのスパムの99.5%(数千件の送信)をブロックしました。これは、すぐに実装される「高度な」セクションで説明した手法を使用しない場合です。
スパムボットのみが見ることができる非表示フィールドをフォームに追加することにより、スパムボットであり、実際のエンドユーザーではないことを明らかにさせることができます。
<input type="checkbox" name="contact_me_by_fax_only" value="1" style="display:none !important" tabindex="-1" autocomplete="off">
ここに簡単なチェックボックスがあります:
サーバー側では、値が存在し、0以外の値を持っているかどうかを確認し、そうであれば適切に処理します。 これには、試行および送信されたすべてのフィールドのロギングが含まれます。
PHPでは、次のようになります。
$honeypot = FALSE;
if (!empty($_REQUEST['contact_me_by_fax_only']) && (bool) $_REQUEST['contact_me_by_fax_only'] == TRUE) {
$honeypot = TRUE;
log_spambot($_REQUEST);
# treat as spambot
} else {
# process as normal
}
これがログの出番です。何らかの理由でユーザーの1人がスパムとしてマークされた場合、ログは失われた情報を回復するのに役立ちます。また、ハニーポットを回避するために将来変更された場合、サイトで実行されているボットを調査することもできます。
多くのサービスでは、APIを介して、またはリストをアップロードすることにより、既知のスパムボットIPを報告できます。 ( CloudFlare など)見つかったすべてのスパムボットとスパムIPを報告することにより、インターネットをより安全な場所にしてください。
より高度なスパムボットを厳しく取り締まる必要がある場合は、さらにいくつかのことができます。
非オートコンプリートを実際に強制するための1つの提案:
change autocomplete="off"
by autocomplete="nope"
OR autocomplete="false"
指定された値は有効な値ではないため(autocomplete
の値はon
またはoff
のみであるため)、ブラウザーはフィールドへの入力を停止します。
詳細については、 フォームのオートコンプリートをオフにする方法 。
お役に立てれば。
シャ:)
ここでの提案のわずかな(しかし単純な)バリエーションが、コンタクトフォームハニーポットの有効性に大きな違いをもたらすことがわかりました。要するに、隠しフィールドをテキスト入力に変更し、ボットにパスワードだと思わせます。このようなもの:
<input type="text" name="a_password" style="display:none !important" tabindex="-1" autocomplete="off">
このモックパスワードの入力は、チェックボックスの例と同じ基本的なガイドラインに従っていることに注意してください。そして、実際のパスワード入力とは対照的に、テキスト入力はうまく機能するようです。
この明らかに小さな変更により、スパムが大幅に減少しました。