2017-08-30 3 views
1

AzureのWindows 2008 r2インスタンスでホストされているmvc/formsハイブリッドWebアプリケーションがあります。 WebサーバーはIIS 7.5です。過去4〜5ヵ月間私のサーバーは、脆弱性スキャナがPHP関連の脆弱性をチェックすることで絶対に苦しんでいます。例:ELMAH特定のURL要求を拒否/強制終了するためのベストプラクティスASP.Net IIS 7.5

から

The controller for path '/wp-login.php' was not found or does not implement IController. 

は、だから私はに行って、具体的に偉大な働いているIIS 7.5での.phpや.cgiのファイル拡張子の要求をフィルタ処理しました。しかし、私はまだのような要求のために打た取得しています:それはすべてがログに記録されるように、より迷惑だ

など
The controller for path '/admin/Cms_Wysiwyg/directive/' was not found or does not implement IController. 

The controller for path '/phpmyadmin2018/' was not found or does not implement IController. 

など、404が返され、それがすべて無駄にリソース使い捨てですされています。

を通じてエルマー私はこれらのすべての要求に関連するURLの明確なリストを照会しました。これらの要求を短絡する最善の方法は何ですか?私はIPのオプションを任意に禁止することができればよいでしょうが、今では、これらの要求を過去3ヶ月間だけで700個の固有のIPがあります。主な優先順位は、私が知っている偽のURLの辞書からのリクエストを短絡させ、ウェブサーバーからのログと応答を避けることです。ありがとう!

答えて

1

半疑似コードですが、参考になると思います。 Global.asax.csで

public class MvcApplication : HttpApplication 
{ 
    protected void Application_BeginRequest(Object sender, EventArgs e) 
    { 
     var url = HttpContext.Current.Request.Url.AbsoluteUri; 
     if(checkUrl(url)){ 
      // your code here 
     } 

     if (UserIsBanned(GetUserIp())) 
     { 
      Response.Write("ban"); 
      Response.End(); 
     } 
    } 

    private string GetUserIp() 
    { 
     return HttpContext.Current.Request.UserHostAddress; 
    } 
+0

はい、これは便利です。ありがとう。辞書/配列/コレクションが〜400の「悪い」URLの場合、これはリソースの集中によるものであり、これは通常の「良い」リクエストに対する応答時間の点であろうか? –

+0

おそらく大丈夫です、あなたはいつもそれを測定することができます、あなたはまた、辞書で検索のパフォーマンスとどのくらいこれは、リクエストを遅くする別の質問をすることができます – Omu

関連する問題