2011-01-18 33 views
9

現在、当社のウェブサイトにエラーが発生した場合に一般的なエラーメッセージを表示するために使用されるページがあります。エラーがあったというラベルを表示する以外の機能はありません。カスタムエラーのAspxErrorPathページ

私の問題です。私たちのクライアントはセキュリティレビューを実行し、エラー文字列のURLのためにエラーページにフィッシングが含まれていると伝えましたが、これは問題ではありませんが、質問、私はクエリ文字列を削除したいと思います。 ?エラーが発生した場合、それはDefaultErrorPage.aspx aspxerrorpath =/WEBSITE1/LastPage.aspx

に行く

<customErrors mode="On" defaultRedirect="~/DefaultErrorPage.aspx"> 
</customErrors> 

私はこれを防ぐにはどうすればよい:

私のweb.configエントリはこれです?ただし、クエリが含まれている場合はページにリダイレクトできますが、余分なリダイレクトの代わりにクエリ文字列を防ぐ方法を探しています。

答えて

7

あなたは/キャッチ代わりに、Global.asaxファイル内のすべてのエラーを処理し、あなたはエラー処理を自分の制御を取るために持ってしようとしている

protected void Application_Error(object sender, EventArgs e) 
    { 
     //Exception ex = Server.GetLastError(); 

     Server.Transfer("~/DefaultErrorPage.aspx"); 
    } 
+0

Microsoftが =を追加するまで有効です。 – jaekie

+0

残念ながら、Application_Startにエラーがある場合、残念ながらこれは機能しません。 "要求はこのコンテキストでは利用できません" –

+0

@ noah1989 "うまくいきません"ということは、セキュリティ監査人が何らかのクロスサイトスクリプティングの脆弱性をまだ考えていることを意味しますか?または、その場合のエラーを診断するために別のメカニズムを使用するだけですか? –

2

がリダイレクトを行うことができます。 1つの方法は、カスタムエラーリダイレクトを取り除き、グローバルでApplication_Errorメソッドを使用することです。その後、必要に応じてクエリ文字列引数を使用せずに人物を誘導することができます。

もう1つのオプションは、ASP.NETの死のエラーの黄色い画面を避けるように設計されたELMAHです。その後、フレンドリーなエラーを調整し、エラー処理コード自体を書く心配はありません。

第3の方法は、セキュリティチームにASP.NETの仕組みを教え、 "セキュリティ上の懸念"が正当なものかどうかを確認することです。これは、もちろん、あなたが上記のオプションのいずれかをやってもしないことを意味します。

+0

私はELMAHを使いたいと思っています。私は自宅のプロジェクトで使っていますが、私のクライアントはサードパーティの99%とオープンソースのサードパーティの100%を制限しています – jaekie

3

クイックフィックスとして、私は「? defaultRedirect設定の最後に、aspxerrorpathを削除してくれました。

また、私はのsystem.web内のcustomErrorsの設定と同じ問題を取得し、同じ溶液を働いた:

また
<customErrors mode="On" defaultRedirect="~/SystemError.aspx"> 
    <error statusCode="403" redirect="~/Home.aspx?"/> 
    <error statusCode="404" redirect="~/Home.aspx?"/> 
</customErrors> 

を、system.webServer設定に同じ操作を行います。

<httpErrors errorMode="Custom"> 
    <remove statusCode="403" subStatusCode="-1" /> 
    <error statusCode="403" path="/Home.aspx?" responseMode="Redirect" /> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" path="/Home.aspx?" responseMode="Redirect" /> 
</httpErrors> 
関連する問題