web-dev-qa-db-ja.com

ボットPOST洪水防止

2月半ばから、非常に小さなWebサイトへのトラフィックの増加に気づき、毎日アクセスログをメールで送信し始めました。

ボットはホームページを何度もリクエストし、「3 + 6 =?」の形式でコンテンツを投稿します検証。最初は、これらのメッセージには他のWebサイトへのリンクが含まれていました。そのため、「href」、「http」、または「www」を含むすべてのメッセージをphpでブロックすることにしました。これはしばらくの間スパムを削除しましたが、すぐに「どの大学に行きますか」、「私は元気です」などのランダムなコンテンツで新しい投稿が行われました...

そこで、ハニーポットを追加しました。ハニーポットは空のはずのフィールドで、数時間でボットに打ち勝ちました。次に、99,99%の投稿を管理する難読化されたタイムスタンプを持つ隠しフィールドを追加しました。したがって、不正なデータは保存されませんが、ボットはWebサイトのリソースを引き続き使用します。フラッドは数千のリクエストで構成されており、時間の経過とともに激しくなるようです。

私は自分の問題に似た多くの情報を見つけましたが、どのように実装するのか理解できません。 このボットが私のウェブサイトのリソースを使用するのを防ぐにはどうすればよいですか?

以下は、洪水とアクセスログの抜粋を示す画像です(example.comは実際にはWebサイト名です)。これらのヒットは、Googleアナリティクスでは記録されません。

Botflood

188.143.232.26 - - [11/Mar/2016:15:01:52 +0100] "POST /index.php HTTP/1.1" 200 7367 "http://www.example.com/index.php?p=Home" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
188.143.232.26 - - [11/Mar/2016:15:01:53 +0100] "POST /index.php HTTP/1.1" 200 7367 "http://www.example.com/index.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
188.143.232.26 - - [11/Mar/2016:15:01:53 +0100] "POST /index.php HTTP/1.1" 200 7162 "http://www.example.com/index.php?p=Home" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
188.143.232.26 - - [11/Mar/2016:15:01:53 +0100] "POST /index.php HTTP/1.1" 200 7152 "http://www.example.com/index.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
188.143.232.70 - - [11/Mar/2016:15:02:02 +0100] "GET /index.php?p=Home HTTP/1.1" 200 6753 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
188.143.232.70 - - [11/Mar/2016:15:02:02 +0100] "POST /index.php HTTP/1.1" 200 7274 "http://www.example.com/index.php?p=Home" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
188.143.232.70 - - [11/Mar/2016:15:02:02 +0100] "POST /index.php HTTP/1.1" 200 7274 "http://www.example.com/index.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
188.143.232.70 - - [11/Mar/2016:15:02:02 +0100] "POST /index.php HTTP/1.1" 200 7212 "http://www.example.com/index.php?p=Home" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
188.143.232.70 - - [11/Mar/2016:15:02:02 +0100] "POST /index.php HTTP/1.1" 200 7212 "http://www.example.com/index.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
188.143.232.70 - - [11/Mar/2016:15:02:02 +0100] "POST /index.php HTTP/1.1" 200 7230 "http://www.example.com/index.php?p=Home" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 
1
Pepe

ここに役立ついくつかのオプションがあります:

1)意味をなさない非常に古いブラウザとユーザーエージェントをロックアウトします。

2)JSがマウス/タップの動きを検出し、サーバー側セッショントークンに対して確認した後、フォームにajaxをロードします。

3) reCaptcha などのより良いキャプチャを使用します。

4) throttler を5秒ごとに8〜10リクエストなどの適切なレートで30秒間ブロックされます。

5)訪問する必要のないすべての国をブラックリストに登録します。

6)上位のスパムホスト/ ISPのASNをブラックリストに登録します。

1
dhaupin