我在我的Web应用程序中使用ASP.NET的登录控件 . 我希望在发生此异常时在标签上显示一个有趣的错误类型 System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client
当用户尝试通过在Login控件的用户名文本字段中输入它们来执行sql注入攻击或某些HTML或SCRIPT操作时,会发生这种错误 . 我尝试了很多东西,例如在try catch块中包含身份验证登录并捕获 System.Web.HttpRequestValidationException
异常也对我创建的事件执行相同操作,就像用户名TextBox的onTextChange一样 . 但所有这些尝试都失败了 . 请告诉我如何检查此异常并向攻击者显示一个有趣的消息?
1 回答
以下是如何提供更友好的错误消息的几个示例:
http://romsteady.blogspot.com/2007/06/how-to-catch-httprequestvalidationexcep.html
How to catch HttpRequestValidationException in production
您需要记住的是,在页面代码发生之前抛出此异常 . 因此,您通常无法捕获页面代码中的错误,但仅限于Application_Error .
我自己没有尝试过,但this site提供了一种允许页面代码执行的替代方法,但仍然使用内置逻辑保护自己免受恶意输入,以及在您自己的代码中捕获异常 .