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


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


10936
2018-05-31 16:33


起源

你能否通过一个例子来说明你想要完成的代码是什么样的?谢谢 - MethodMan
如果你正在使用IIS7 +,这里有一个更简单的解决方案: - stackoverflow.com/questions/30071341/... - Iain Galloway


答案:


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

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

如何在生产中捕获HttpRequestValidationException

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

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


13
2018-05-31 16:56