从客户端检测到有潜在危险的Request.Form值异常
问题描述:
我们在具有负载平衡服务器的2台服务器上安装了Internet站点,两台服务器上的代码相同,但其中一台服务器每分钟显示以下例外,“$ MainContent $ ASPCONTROL“每次都在变化。从客户端检测到有潜在危险的Request.Form值异常
A potentially dangerous Request.Form value was detected from the client (ctl00$MainContent$drpOwnerNationality="...lect'"()&%<acx><ScRiPt >prompt..."). at System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection)
at System.Web.HttpRequest.ValidateHttpValueCollection(HttpValueCollection collection, RequestValidationSource requestCollection)
at System.Web.HttpRequest.get_HasForm()
at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
at System.Web.UI.Page.DeterminePostBackMode()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)_ApplicationError,
答
我觉得你的控制(drpOwnerNationality)中的一个具有script..ASP.Net做你的窗体上的所有投入的可能XSS验证......所以它在你的控制中的一个检测脚本是什么例外状态。
问题可能是您的应用程序的用户之一是在Textbox/Control中输入脚本,并且您没有在您的客户端验证。
的一种方法是在客户端做验证,并通知用户,他们无法进入脚本在你的控制
另一种方式是通过网页上设置validateReqeust属性设置为false
<@ Page validateRequest="false" %>
关闭验证但是,如果你这样做,那么你已经将你的应用程序暴露给XSS攻击。一种方法可能是在处理该信息之前禁用验证并对所有输入进行编码...
`HttpServerUtility.HtmlEncode(drpOwnerNationality.SelectedText);` // assuming it is dropdown
答
错误原因是因为您尝试发送纯html或其他可能包含不安全元素的内容。 1.您可以像下面的article一样禁用请求验证。 2.其他选项,你可以在使用第三方JavaScript库发送你的内容到Base64(尝试谷歌它)。
还有其他几种选择,但它取决于你的情况。
+0
我不尝试发送不安全的HTML,\t drpOwnerNationality是dropdownlist,它不应该包含“... lect'”()&%
答
我们在阻止他们解决问题之后,从2个IP中检测到巨大点击量。 似乎有人试图发布不安全的HTML
我认为你的控制之一有脚本..ASP.Net做潜在的XSS验证您的窗体上的所有输入,...所以它是检测脚本像字符串中的一个你的控件是什么例外状态.. – Viru
请同时添加asp.net页面代码 – Aristos
你是否在任何输入字段中向服务器发送HTML? –