web-dev-qa-db-ja.com

Torユーザーがフォームにスパムを送信するのをブロックできますか?

.htaccessを使用してTor IPからのメッセージを殺すことはできますか、それともメーラーでスクリプトを作成する必要がありますか?

私が持っている

$IP = $_SERVER['REMOTE_Host'] ?: gethostbyaddr($_SERVER['REMOTE_ADDR']);

そして、Tor IPリストに対してメールの1つをチェックし、一致するものを見つけました:ns3035851.ip-37-187-94.eu

List of IP addresses

3
james gasrdner

IPアドレスのブラックリストを使用する代わりに(モグラの負けゲームをするようなものです)、ボットスパムを削減するための2つの戦略の1つをお勧めします。

戦略1:ハニーポットフィールド

私はこれを自分のWebフォームの1つに個人的に使用しており、非常にうまく機能しています。フォームにアンチスパムフィールドを作成し、そのフィールドが入力されると(ボットによって無制限に入力されます)、システムは自動的に送信をスパムとしてマークします。

ハニーポットフィールドを正当なユーザーから隠すには、ブラウザでoverflow: hiddenとともに高さをゼロ(または低い)に設定します。ユーザーのCSSが無効になっている場合、「アンチスパム-このフィールドは空白のままにしてください」の行に沿ってフィールドにラベルを付けることができます。

戦略2:キャプチャ

別の方法として、キャプチャを使用し、人間のみがフォームを送信できるようにします。最も人気のあるcaptchaソリューションは ReCaptcha で、これはWebフォームに簡単に統合できます。