一个潜在危险的Request.Path值....只包含字母数字和下划线?

时间:2011-10-13 20:37:02

标签: asp.net iis

我知道这个问题的正常原因,但这个网址有什么问题?

http://res02.img.mem.com/individual/assets/2/2/7/1/2291722/20081027_112706_07.jpg?width=100

大多数情况下,请求似乎正确执行,但每隔几个小时,服务器会记录少数(1-3)这些错误,并开始在每个请求中返回503错误。

我不介意警告,但它按时间顺序与服务器崩溃重合。该应用程序非常简单,只需从SAN返回和调整图像大小。具有相同软件的另一台服务器正常工作。 (并且所述软件为数千个其他网站提供支持,许多网站在服务器群上运行)。

不同之处在于此服务器具有FNCMode = 2,以防止ASP.NET在网络上产生数百万个FileSystemWatcher,以监控应用程序(和图像)所在的SAN。 (避免BIOS命令限制到达错误)。

我甚至用WinDbg和SOS分析了崩溃转储无济于事。

想法?我知道我在这里提出了两个不同的问题,但它们是按时间顺序排列的。

A potentially dangerous Request.Path value was detected from the client (?).
   at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
   at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)

Request information: 
    Request URL: http://res02.img.mem.com/individual/assets/2/2/7/1/2291722/20081027_112706_07.jpg?width=100 
    Request Path: /individual/assets/2/2/7/1/2291722/20081027_112706_07.jpg?width=100
    User host address: 174.37.137.143 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: IIS APPPOOL\ASP.NET v4.0 

Thread information: 
    Thread ID: 32 
    Thread account name: IIS APPPOOL\ASP.NET v4.0 
    Is impersonating: False 
    Stack trace:    at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
   at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)

1 个答案:

答案 0 :(得分:0)

事实证明问题没有关联。少数请求URL对问号进行了URL编码,导致它被解析为路径的一部分而不是查询字符串。在URL解码之后,请求被请求验证捕获。

崩溃问题似乎是由于IIS线程错误,但我们仍在使用MS进行调试。