【发布时间】:2014-07-30 20:30:40
【问题描述】:
关于这个主题有很多问题,但我没有找到适合我们特殊情况的问题...
我们有一个高效的站点正在运行,并且偶尔(每天大约 5 到 10 次)我们会收到有关具有潜在危险的 Request.Path 值的错误通知。这里奇怪的是,实际的“危险”字符不在请求路径中,而是在参数中。
在查看请求对象时,我们会得到如下值:
HttpContext.Current.Request.Url.AbsolutePath --> /relative/path/to/page
HttpContext.Current.Request.Url.Query --> ?param1=value¶m2=value
ASP.NET 抱怨参数中的 ?:
Message: A potentially dangerous Request.Path value was detected from the client (?). (System.Web.HttpException)
Stacktrace:
at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
但从我的角度来看,一切似乎都很好(这些确实是有效的 url,如果我在浏览器中输入它们,它们确实可以工作)。
我们还在跟踪客户端 IP 和客户端用户代理,它们大多与一些爬虫有关。是否有可能,他们正在构建一个触发这些错误的错误请求?
【问题讨论】:
-
你怎么知道发生了这个错误?谁造成了错误,该网站是否可以公开访问?什么确切的请求会引发该信息?
-
我们在 Global.asax 中添加了一个错误处理程序,并接收有关错误的电子邮件通知。是的,该网站可公开访问。该请求如问题中所述 - 还有什么有用的?
标签: asp.net request-validation