关于这个主题有很多问题,但我没有找到适合我们特殊情况的问题......
我们有一个高效的站点正在运行,并且偶尔(每天大约 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 和客户端用户代理,它们主要与一些爬虫有关。是否有可能,他们正在构建一个触发这些错误的错误请求?