由“&”引起的“潜在危险的Request.Path值”(不应该存在)

时间:2015-01-29 20:52:13

标签: asp.net

我正在使用ASP.NET网站。该网站的用户将收到一封电子邮件,其中包含指向该网站的链接。链接看起来像这样:

https://<website>/Default.aspx?LC=<guid>

&#34; LC&#34;参数是他们的登录代码。 &#34; LC&#34;参数是我们放在链接上的 only 参数。它也可以在没有代码的情况下直接进入Default.aspx页面,并在提示符下键入一个。

问题出在这里:在极少数情况下(但自网站推出以来一直如此),我从Global.asax处理程序收到错误报告:

12:24:41 ERROR Global.asax - Application_Error - unhandled error: 
System.Web.HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (&).
   at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
   at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)

我不知道为什么我会继续收到这些消息。我已经尝试记录HttpContext.Current.Request.RawUrl以查看客户端使用的实际URL,但我得到的只是:

/&

和HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath报告为:

~/&

有什么方法可以记录&#34;真正的&#34;请求并查看此&符号的来源? LC参数值始终是GUID,因此它永远不会有一个&符号。此外,99%的网站用户似乎没有出现此问题。据我所知,这是由机器人或其他东西引起的,但如果它发生在真实用户身上,我想找出原因。

0 个答案:

没有答案