14

我在我的 Web 应用程序中使用 ASP.NET 的登录控制。当发生此异常时,我想在标签上显示一种有趣的错误类型,System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client 当用户尝试通过在登录控件的用户名文本字段中输入它们来执行 sql 注入攻击或某些 HTML 或 SCRIPT 操作时,就会发生这种错误。我尝试了很多事情,例如将身份验证登录包含在 try catch 块中,并捕获 System.Web.HttpRequestValidationException异常也对我创建的事件执行相同操作,与用户名文本框的 onTextChange 相同。但所有这些尝试都失败了。请告诉我如何检查此异常并向攻击者显示一条有趣的消息?

4

1 回答 1

15

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

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

如何在生产中捕获 HttpRequestValidationException

您需要记住的是,在页面代码发生之前会引发此异常。因此,您通常无法在页面代码中捕获错误,而只能在 Application_Error 中捕获错误。

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

于 2012-05-31T16:56:14.967 回答