2016-03-07 68 views
1

我们在具有负载平衡服务器的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, 
+0

我认为你的控制之一有脚本..ASP.Net做潜在的XSS验证您的窗体上的所有输入,...所以它是检测脚本像字符串中的一个你的控件是什么例外状态.. – Viru

+0

请同时添加asp.net页面代码 – Aristos

+0

你是否在任何输入字段中向服务器发送HTML? –

回答

0

我觉得你的控制(drpOwnerNationality)中的一个具有script..ASP.Net做你的窗体上的所有投入的可能XSS验证......所以它在你的控制中的一个检测脚本是什么例外状态。

问题可能是您的应用程序的用户之一是在Textbox/Control中输入脚本,并且您没有在您的客户端验证。

的一种方法是在客户端做验证,并通知用户,他们无法进入脚本在你的控制

另一种方式是通过网页上设置validateReqeust属性设置为false

<@ Page validateRequest="false" %> 

关闭验证但是,如果你这样做,那么你已经将你的应用程序暴露给XSS攻击。一种方法可能是在处理该信息之前禁用验证并对所有输入进行编码...

`HttpServerUtility.HtmlEncode(drpOwnerNationality.SelectedText);` // assuming it is dropdown 
+0

drpOwnerNationality是下拉列表,它不应该包含“... lect'”()&%

0

错误原因是因为您尝试发送纯html或其他可能包含不安全元素的内容。 1.您可以像下面的article一样禁用请求验证。 2.其他选项,你可以在使用第三方JavaScript库发送你的内容到Base64(尝试谷歌它)。

还有其他几种选择,但它取决于你的情况。

+0

我不尝试发送不安全的HTML,\t drpOwnerNationality是dropdownlist,它不应该包含“... lect'”()&%

  • 11. 从客户端检测到潜在危险的Request.form值
  • 12. ASP.NET Webforms - “从客户端检测到潜在危险的Request.Form值”
  • 13. 从客户端检测到潜在危险的Request.Form值
  • 14. “检测到潜在危险的request.form值”
  • 15. 从客户端检测到有潜在危险的Request.Form值(wresult =“<trust:RequestSecuri ...”)
  • 16. ASP.NET 4.5从客户端检测到有潜在危险的Request.Form值
  • 17. IE只 - 从客户端(MVC-剃刀)检测到有潜在危险的Request.Form值
  • 18. 从客户端检测到有潜在危险的Request.Form值,请编码帮助
  • 19. MVC 5 - 从客户端检测到有潜在危险的Request.Form值
  • 20. 潜在危险Request.Form值被检测到
  • 21. 提醒用户“从客户端检测到潜在危险的Request.Form值”
  • 22. 无法过滤“从客户端检测到潜在危险的Request.Form值”在elmah
  • 23. System.Web.HttpRequestValidationException:从机器人的客户端检测到潜在危险的Request.Form值?
  • 24. MVC 4 - Razor - “从客户端检测到潜在危险的request.form值”
  • 25. 如何解决..从客户端检测到潜在危险的Request.Form值
  • 26. “在客户端检测到潜在危险的Request.Form值”之前页面加载
  • 27. 从客户端检测到潜在危险的Request.Path值
  • 28. 从客户端检测到潜在危险的Request.Path值(:)
  • 29. 获取“从客户端(&)检测到潜在危险的Request.Path值”
  • 30. 从客户端检测到潜在危险的Request.QueryString值