在异常时显示自定义错误消息:从客户端检测到潜在危险的Request.Form值

Ais*_*iva 13 c# asp.net validation sql-injection login-control

我在我的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一样.但所有这些尝试都失败了.请告诉我如何检查此异常并向攻击者显示一个有趣的消息?

slo*_*ife 15

以下是如何提供更友好的错误消息的几个示例:

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

如何在生产中捕获HttpRequestValidationException

您需要记住的是,在页面代码发生之前抛出此异常.因此,您通常无法捕获页面代码中的错误,但仅限于Application_Error.

我自己没有尝试过这个,但是这个站点提供了一种允许页面代码执行的替代方法,但仍然使用内置逻辑保护自己免受恶意输入,以及在您自己的代码中捕获异常.