2012-05-03 7 views
1

単純なasp.net Webフォームページでは、単にHTTPリクエストを傍受し、クエリ文字列からパラメータを取得し、いくつかのチェックを行い、パラメータに基づいて要求をリダイレクトします。Request.Validation/Encode URLを無効にする

最近、ログにHttpRequestValidationExceptionエラーがあります。これは、取り込んでいるURLがエンコードされていないため、Request.Validationをtrueに設定しているためです。

今、私はこのエラーを取り止めたいですが、私はまだ注射から保護されたいです。私はRequest.Validationを無効にして、URLで何かをする前にURLを単純にエンコードすることを考えていました。これは有効な解決策ですか?また、どのようなタイプのエンコーディングを使用する必要がありますか? HTMLエンコードまたはURLエンコードHTMLエンコーディングを推測すると、javascriptやSQLインジェクションから保護されません。

ありがとうございます。

答えて

0

、私はこのエラー

あなたがこれを取得停止したい何らかの理由があるの取得を停止したいと思いますか?これは良いことです - 危険な要求が摘発されたことを伝えています。あなたがこれらのログを打つことを止めたいのであれば、なぜ例外を飲み込まないのですか?また、これはまだ他のすべての例外をログの利点を持っている

void Application_Error(object sender, EventArgs e) 
{ 

    Exception exc = Server.GetLastError(); 
    if(exc.GetType() == typeof(HttpRequestValidationException)) 
    { 
     //ignore and don't write to log 
    } 

} 

これはトリック(Global.asaxの)を行うだろう。

+0

私が傍受しているリクエストは私のシステムから来ているので、リクエストは本当に危険ではなく、エンコードされていません。 – user1373121

関連する問題