PHPの不正なクライアントの追跡とテスト
-
22-07-2019 - |
質問
今、多くの方法で取れる主題があります。問題を説明し、提案を得るときに、難読化を解除できればと思います。
既存のサイトを置き換えるサイトを開発しています。歴史的に私たちが抱えていた問題の1つは、スパイダーボットが侵入し、すべてのコンテンツを吸い上げることです。ここで、コンテンツがダウンロードされていることを気にしません。実際、私たちはそれを喜んでいますが、バルクダウンローダーとダウンロードアクセラレータの一部は現在のサイトで問題があることが判明しています。
私が探しているのは、ほとんど最初に実行されるphpの先頭にあるものです。ページリクエスト(IP、リファラー、リクエストURI、Cookie、セッションIDなど)のフィンガープリントを取得し、...何かに渡します。次に、その何かが最後の1〜3秒の指紋と指紋を比較します。次に、事前設定されたしきい値に基づいて、リクエストの処理方法を示すメッセージを返します。
一部のしきい値は次のとおりです。
- ユーザーが<!> gt;を要求しました。最後の0.n秒でxページ。
- ユーザーが<!> ltで同じページを要求しました。 0.n秒。
- ユーザーは過去n秒間に同一のデータをフォームに送信しました。
だから、かなり狭い窓を見ているのがわかります。そのようなことを検出することさえ可能ですか?何らかのファイルまたはデータベースのデータソースでそれを行うことができますか?ほとんどのデータが1〜2秒間保持されるため、ページの読み込みと読み込みの間に指紋を保存するために使用するものは、多くの混乱を経験します。しきい値に対してチェックするためにApacheログを解析するものが必要ですか?スクリプトから呼び出すことができるメモリに1〜2秒データを保持する外部デーモンを探している必要がありますか?これを処理できるApacheに何かがありますか?これを処理するにはサーバーの男にパントする必要がありますか?
これがPHPまたは外部デーモンと呼ばれるものでできることだと仮定すると、しきい値を超えた動作にどのように対応できますか?私の内臓はHTTPレスポンスを408や503のように言いますが、私の内臓はしばしば間違っています。クライアントに少し後戻りするように指示するにはどうすればよいですか?ある種の<!> quot; Woah there <!> quot;ページ?
解決
PEAR :: HTTP_Floodcontrol および mod_security および fail2ban 。
他のヒント
ソフトウェアソリューションを持っていない場合は、ルーター/ファイアウォールをプログラムして、これを処理してください。 DOS攻撃(またはそれに相当するもの)を除外することは、その目的の一部です。
mod_evasiveを試す