Вопросов на эту тему много, но для нашего частного случая не нашел...
У нас работает производительный сайт, и время от времени — от 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-адрес клиента и пользовательский агент клиента, и они в основном связаны с некоторыми поисковыми роботами. Возможно ли, что они строят ошибочный запрос, который вызывает эти ошибки?