2012-05-31 12 views
8

WebアプリケーションでASP.NETのログイン制御を使用しています。この例外が発生したときに、ラベルに面白いタイプのエラーを表示したいのですが、ユーザーがログイン制御のユーザー名テキストフィールドにSQLインジェクション攻撃やHTMLやSCRIPT操作を入力しようとしたときにエラーが発生します。System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client 私は認証ログインをtry catchブロックに入れて、 System.Web.HttpRequestValidationException例外をキャッチして、Username TextBoxのonTextChangeと同じように私が作成したイベントに対しても同じことをするなど、多くのことを試しました。しかし、これらの試みはすべて失敗しました。この例外をチェックし、面白いメッセージを攻撃者に表示する方法を教えてください。ここで例外に関するカスタムエラーメッセージの表示:潜在的に危険なRequest.Form値がクライアントから検出されました

+0

あなたが達成しようとしているものに関して、コードがどのように見えるかを例に挙げてください。ありがとうございます – MethodMan

+0

IIS7 +を使用している場合、ここにはより簡単な解決策があります: - http://stackoverflow.com/questions/30071341/asp-net-mvc-customerror-page-doesnt-get-displayed-for-some-of-the -400-errors/30072933#30072933 –

答えて

11

は友好エラーMSGを提供する方法のいくつかの例です:

http://romsteady.blogspot.com/2007/06/how-to-catch-httprequestvalidationexcep.html

How to catch HttpRequestValidationException in production

あなたが心に留めておく必要があるものは、この例外があなたのページのコードの前にスローされるということです起こるだからあなたは通常あなたのページコードのエラーをキャッチすることはできませんが、Application_Errorだけです。

私はこれを試したことはありませんが、this siteはページコードを実行できる代わりに、組み込みロジックを使用して悪意のある入力から身を守り、自分のコード内で例外をキャッチする代替手段を提供します。

関連する問題