2010-12-13 13 views
4

悪意のあるスクリプトからのリクエストを拒否する最良の方法は何ですか?私はモジュールを持つZendアプリケーションを持っています。私は、mywebsite.com/phpmyadmin、/ webmail、/ cpanelなど、スキャナがダイヤルしているURLのリストを持っています。現在、404のエラーログが詰まっています。私はアプリケーション内から403人にしたいと思います。 (それを処理するより良い方法がない限り)?Zendフレームワークの中で403への最速の方法

Zendの中で最も速い方法は403なので、ディスパッチサイクルを不必要に変えないのですか?私は、プラグインで、以下のやっているが、私はこれが最善の方法であることを確認していない:任意の提案のための

public function preDispatch(Zend_Controller_Request_Abstract $request) 
{ 
    if (malicious request) { 
     $this->getResponse() 
        ->clearHeaders() 
        ->setHttpResponseCode(403) 
        ->appendBody("Forbidden") 
        ->sendResponse(); 
    } 
} 

ありがとう!

+0

私はそれはまだビュースクリプトをロードしようと、それはあなたの方法:( んが、私は自分の行動に –

答えて

1

リダイレクタと呼ばれるZend Controller Action Helperをチェックしてください:http://framework.zend.com/manual/en/zend.controller.actionhelpers.htmlこれはプラグインと同じことを行いますが、必ずしも速くなるとは限りません。

+1

アクションヘルパーをそれを行う場合をpreDispatch後に使用可能です。私は遅くはない、これはより速くしようとしています。 – RADA

0

悪いリクエストURIの外観を知っている場合は、mod_rewriteルールを使用してカスタムの静的エラーページに直接送信できます。ルールの前に、index.phpにリクエストを送信するルールを入力し、それらのリクエストがあなたのアプリケーションにぶつかることはありません。

RewriteEngine On 
RewriteRule ^/mywebsite.com/phpmyadmin /errorpage.php [L] 
RewriteRule !(phpdoc|docs)|\.(js|ico|gif|jpg|png|css|html)$ /index.php 
+0

あなたのアプリケーションに到達する前にウェブサーバーが明らかに悪いページを処理することは間違いなく高速ですが、あなたのリストは決して完全ではありませんが、アプリケーション内に別のソリューションを実装する必要がありますが、これは不正な要求の大部分を処理します。 –

+0

静的なページはなぜ高速ですか403は高速で、一部のスキャナは403を受け取ったらあきらめてしまいます。 – RADA

関連する問題