1

在 asp.net 网络表单应用程序中,我们有时会收到一条带有“潜在危险 Request.RawUrl”的错误消息,但我找不到它的来源。

此异常的可能原因是什么?


我们案例的一些细节:

事件消息:发生验证错误

异常类型:System.Web.HttpRequestValidationException

异常消息:有潜在危险的 Request.RawUrl 值是
从客户端检测到 (="..._Combin%20%20%20%20%20%2...")。

请求网址:https://somesite/somepage.aspx
?_TSM_HiddenField_=ctl00_sm1_HiddenField
&_TSM_Combin%20</div>%20%20%20%20%20%20%20%20<div%20id=

堆栈跟踪:在 System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName)
   在 System.Web.HttpRequest.get_RawUrl()
   在 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)
   在 System.Web.UI.Page.ProcessRequest(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)
   在 System.Web.UI.Page.ProcessRequest()
   在 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext 上下文)
   在 System.Web.UI.Page.ProcessRequest(HttpContext 上下文)
   在 ASP.somepage_aspx.ProcessRequest(HttpContext 上下文)
   在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,Boolean& completedSynchronously)

我在生成的页面的 html 中识别出带有 TSM_HiddenField 的部分:

<script src="/somepage.aspx?_TSM_HiddenField_=ctl00_sm1_HiddenField&_TSM_CombinedScripts_=
%3b%3bAjaxControlToolkit%2c+版本%3d3.5.11119.20050%2c+文化%3dneutral%2c
+PublicKeyToken%3d28f01b0e84b6d53e%3ada-DK%3a8e147239-dd05-47b0-8fb3-f743a139f982
%3ae2e86ef9%3a1df13a87%3a8ccd9c1b%3ac4c00916%3a9ea3f0e2%3a9e8e87e9
%3a4c9865be%3aba594826%3ac76f1358" type="text/javascript"></script>

...所以在这种情况下它似乎与AjaxControlToolkit有关,但是这个异常怎么会发生呢?

(当用户登录时会发生这种情况,所以我怀疑是否涉及一些爬虫或黑客尝试......)

4

2 回答 2

1

看起来您在提交的表单字段中有 HTML 标记,可能是这个:

&_TSM_Combin%20</div>%20%20%20%20%20%20%20%20<div%20id=

<div>罪魁祸首。

于 2009-10-27T10:12:29.553 回答
0

认为这与 ASP.NET 请求验证有关:http ://www.asp.net/learn/whitepapers/request-validation/

如果 HTML 标记随请求一起发送,它会抛出异常。

于 2009-10-27T10:11:24.373 回答