0

Web サイトでセキュリティ スキャンを実行した後、これらの 2 文字<aは 500 を引き起こす可能性があります

http://domain.com/default.aspx ? <a

エラーは Application_Error で処理され、error.aspx ページにリダイレクトされます。

Application_Error()  
{  
 Response.Redirect("/error.aspx?asperrorpath=" + Context.Request.RawUrl);  
}

しかし、RawUrl は param asperrorpath の単なる値として表示されず、リダイレクトによって別の 500 が発生し、無限のリダイレクト ループが発生します。

リダイレクト ループを回避する唯一の解決策は、RawUrl をエンコードすることですが、ユーザーが要求した実際の URL を確認したいので、エンコードによって情報が失われる可能性があります。他に解決策はありますか?

ありがとう

4

2 に答える 2

0
HttpUtility.UrlEncode(Context.Request.RawUrl);
于 2012-05-24T03:14:43.327 に答える
0

これがあなたの目的に役立つかどうかはわかりません。多分あなたはそれらを交換することができます

Application_Error()  
{  
   Response.Redirect("/error.aspx?asperrorpath=" + String.Replace(Context.Request.RawUrl,"<a","^^$$^^");  
}

したがって、そのパターンが見られた場合は、それが「< a」であると推測できます...そうでない場合に発生しないように組み合わせを選択してください。

于 2012-05-24T02:56:31.557 に答える