クライアント(...)から潜在的危険性を検出したRequest.Form値の処理方法
1827 ワード
クライアントから潜在的な危険性があると検出されたRequest.Form値は.netでRequestにHTMLやJavascriptなどの文字列がある場合、システムは危険性値とみなされます.すぐに上のエラーを報告します.
例えば、ウェブページのTextBox 1にHTMLコードを入力して、ボタンをクリックしたらエラーが発生します.解決策:
ソリューション1:
aspxファイルのヘッダにこの文を追加します.
web.co nfigファイルを変更:
ソリューション3:
もちろん、このようにするのはインターフェースをきれいにするだけです.注入を抵抗するには、フィルタリングから十分な工夫をしなければなりません.その後、validateRequestを禁止しない方法があります.次のようにvalidateRequest=falseを禁止しません.正しいやり方は現在のページにPage_を追加することです.Errer()関数は、すべてのページ処理中に発生した異常なしに捕獲される.その後、ユーザーに合法的なエラーメッセージを送る.現在のページにPage_がない場合Error()は、この異常をGlobal.asaxのAppplicationに送ります.Err()で処理します.そこには共通の異常エラー処理関数が書いてあります.両方とも異常処理関数が書かれていないと、このデフォルトのエラーページが表示されます.例えば、この異常を処理するには、短いコードだけで十分です.ページのCode-behindページにこのようなコードを追加します.以下は参照フラグメントです.
Global.asaxファイルのApplication_Errer()は処理に来る.このようにホームページ全体で有効です.
例えば、ウェブページのTextBox 1にHTMLコードを入力して、ボタンをクリックしたらエラーが発生します.解決策:
ソリューション1:
aspxファイルのヘッダにこの文を追加します.
<%@ Page validateRequest="false" %>
ソリューション2:web.co nfigファイルを変更:
<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0" />
<pages validateRequest="false" />
</system.web>
</configuration>
validateRequestのデフォルト値はtrueです.falseに設定すればいいです.ソリューション3:
もちろん、このようにするのはインターフェースをきれいにするだけです.注入を抵抗するには、フィルタリングから十分な工夫をしなければなりません.その後、validateRequestを禁止しない方法があります.次のようにvalidateRequest=falseを禁止しません.正しいやり方は現在のページにPage_を追加することです.Errer()関数は、すべてのページ処理中に発生した異常なしに捕獲される.その後、ユーザーに合法的なエラーメッセージを送る.現在のページにPage_がない場合Error()は、この異常をGlobal.asaxのAppplicationに送ります.Err()で処理します.そこには共通の異常エラー処理関数が書いてあります.両方とも異常処理関数が書かれていないと、このデフォルトのエラーページが表示されます.例えば、この異常を処理するには、短いコードだけで十分です.ページのCode-behindページにこのようなコードを追加します.以下は参照フラグメントです.
protected void Page_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex is HttpRequestValidationException)
{
Response.Write(" 。");
Server.ClearError(); // ClearError() Application_Error()。
}
}
ソリューション4:Global.asaxファイルのApplication_Errer()は処理に来る.このようにホームページ全体で有効です.
void Application_Error(object sender, EventArgs e)
{
//
Exception ex = Server.GetLastError();
if (ex is HttpRequestValidationException)
{
Response.Write(" 。");
Server.ClearError(); // ClearError() Application_Error()。
}
}