web-dev-qa-db-ja.com

特定のファイルの要求に基づいてIP禁止をトリガーしますか?

「x.php」に脆弱性があることがわかっているWebサイトを運営しています。この脆弱性は修正され、サイトに「x.php」はなくなりました。

主要な公開脆弱性と同様に、スクリプトキディは、サイトの構造全体で「x.php」を探しているツールを実行しているようです。

これは無駄な帯域幅、トラフィック、負荷であり、実際には必要ありません。

サイトの「x.php」にアクセスしようとするIPアドレスへの時間ベースの(または永続的な)禁止をトリガーする方法はありますか?

おそらく、要求が「x.php」に対するものであるという事実をキャプチャし、それが禁止をトリガーするカスタム404 PHPページが必要ですか?どうやってやるの?

ありがとう!

編集:

サイトを強化する部分を追加する必要があります。 ZBBlock を使用し始めました。

このphpセキュリティスクリプトは、Webサイトに有害な特定の動作、またはサイトにアクセスしようとする既知の不正なアドレスを検出するように設計されています。その後、不正なロボット(通常)またはハッカーに、問題が何であるかの説明を含む本物の403 FORBIDDENページを送信します。攻撃者が持続する場合、24時間のタイムアウトで永続的に繰り返される503 OVERLOADメッセージが提供されます。

しかし、ZBBlockは、私がやりたいことを正確に実行するわけではなく、他のスパム/スクリプト/ハックのブロックに役立ちます。

5
Mike Atlas

X.phpを再作成し、アクセスしようとしている人のIPアドレスを収集します。次に、Apacheを使用してそれらをブロックする.htaccessファイルを作成(または変更)します。 .htaccessファイルは次のようになります。

order deny,allow
deny from 123.123.123.123
deny from 255.255.255.255

禁止したいIPアドレスをそのファイルに追加し続けるだけです。

X.phpは次のようになります:(テストなし)

<?php
    $fp = fopen('.htaccess', 'a');
    fwrite($fp, 'deny from  ' . $_SERVER['REMOTE_ADDR'] . "\n");
    fclose($fp);
?>
3
John Conde

John Condeが投稿したPHPコードは機能しません。望ましくない結果として。htaccessファイル全体を置き換えます。以下のPHPは、彼のPHPの代わりになります。私はそれをテストしました。

<?php      
    $ipdeny = 'deny from  ' . $_SERVER['REMOTE_ADDR'];
    file_put_contents('.htaccess', $ipdeny . PHP_EOL, FILE_APPEND);
?>
2
Jonathan Rowley