C# 潜在危险的请求。从客户端异常检测到表单值

C# 潜在危险的请求。从客户端异常检测到表单值,c#,asp.net,iis,C#,Asp.net,Iis,我们在两台服务器上有一个internet站点,带有负载平衡服务器。两台服务器上的代码相同,但其中一台服务器每分钟都会显示以下异常,“$MainContent$ASPCONTROL”每次都在更改 A potentially dangerous Request.Form value was detected from the client (ctl00$MainContent$drpOwnerNationality="...lect'"()&%<acx><ScRiPt &g

我们在两台服务器上有一个internet站点,带有负载平衡服务器。两台服务器上的代码相同,但其中一台服务器每分钟都会显示以下异常,“$MainContent$ASPCONTROL”每次都在更改

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,
一个潜在危险的请求。在System.Web.HttpRequest.ValidateString(String value,String collectionKey,RequestValidationSource requestCollection)上从客户端(ctl00$MainContent$drPownerNational=“…lect”“()&%prompt…”)检测到表单值
在System.Web.HttpRequest.ValidateHttpValueCollection(HttpValueCollection集合,RequestValidationSource requestCollection)中
在System.Web.HttpRequest.get_HasForm()上
位于System.Web.UI.Page.GetCollectionBasedOnMethod(布尔值dontReturnNull)
在System.Web.UI.Page.DeterminePostBackMode()中
在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
在System.Web.UI.Page.ProcessRequest(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
在System.Web.UI.Page.ProcessRequest()中
在System.Web.UI.Page.ProcessRequest(HttpContext上下文)中
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中
在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)\u ApplicationError,

我认为您的一个控件(drpownernational)有脚本..ASP.Net对表单上的所有输入进行潜在的XSS验证…因此它正在检测一个控件中的脚本,这就是异常状态

问题可能是您的应用程序的一个用户正在文本框/控件中输入脚本,而您在客户端未生效

一种方法是在客户端进行验证,并通知用户他们无法在您的控件中输入脚本

另一种方法是通过将页面上的ValidateRequest属性设置为false来关闭验证

<@ Page validateRequest="false" %>

我认为您的一个控件(DrPownerNational)有脚本..ASP.Net对表单上的所有输入进行潜在的XSS验证…因此,在您的一个控件中检测脚本就是异常状态

问题可能是您的应用程序的一个用户正在文本框/控件中输入脚本,而您在客户端未生效

一种方法是在客户端进行验证,并通知用户他们无法在您的控件中输入脚本

另一种方法是通过将页面上的ValidateRequest属性设置为false来关闭验证

<@ Page validateRequest="false" %>

错误原因是您试图发送纯html或其他可能包含不安全元素的内容。 1.您可以禁用请求验证,如下所示。 2.其他选项:在使用第三方JavaScript库发送之前,您可以将内容转换为Base64(试试google it)


还有几个其他选项,但这取决于您的情况。

错误原因是您试图发送纯html或其他可能包含不安全元素的内容。 1.您可以禁用请求验证,如下所示。 2.其他选项:在使用第三方JavaScript库发送之前,您可以将内容转换为Base64(试试google it)


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

我们检测到来自2个IP的大量点击,在阻止它们之后,问题就解决了。
似乎有人试图发布不安全的html

我们检测到来自2个IP的巨大点击,在阻止它们后,问题解决了。
似乎有人试图发布不安全的html

我想你的一个控件有脚本..ASP.Net对表单上的所有输入进行潜在的XSS验证,…因此它在你的一个控件中检测到类似脚本的字符串,这就是异常状态..请同时添加ASP.Net页面端代码你是否在任何输入字段中将html发送到服务器?我想你的一个控件有脚本..ASP.Net对表单上的所有输入进行潜在XSS验证,…因此它在你的一个控件中检测到类似脚本的字符串,这就是异常状态..请同时添加ASP.Net页面端代码。你是否在任何输入字段中向服务器发送HTML?DrPownerNational是dropdownli并且它不应该包含“…选择”(&%prompt…)还有一个客户端验证,用于文本框,但不用于具有名称的dropdownlist,从DB绑定的值,用户必须从中进行选择是的…您是否检查了您的DB没有绑定到下拉列表的脚本文本…好主意是在将文本绑定到下拉列表之前对其进行编码我们不会像这样将脚本插入DB,我们不允许将这些脚本插入DB,但问题是w3wp过程正在消耗此服务器上的更多内存。另一台服务器具有相同的代码,但未显示任何问题。这与代码无关,而是与数据库中的数据有关…您在其他服务器上的代码也易受相同问题的攻击…出于某些您只能检查的原因,数据库返回脚本数据的实例仅发生在一台服务器上…您是否检查了错误出现的次数?您确定在另一台服务器上根本没有发生这种情况吗?试图绑定到下拉列表的数据是什么?您不能运行查询并验证数据库中的数据吗?您是否在两台服务器中使用相同的输入进行了测试?DrPownerNational是dropdownlist,它不应包含“…选择”()和%prompt…”。。。)还有一个客户端验证,用于文本框,但不用于具有名称的dropdownlist,从DB绑定的值,用户必须从中进行选择是的…您是否检查了您的DB没有绑定到下拉列表的脚本文本…好主意是在将文本绑定到下拉列表之前对其进行编码我们不会像这样将脚本插入DB,我们不允许将这些脚本插入DB,但问题是w3wp过程正在消耗此服务器上的更多内存。另一台服务器具有相同的代码,但未显示任何问题。这与代码无关,而是与数据库中的数据有关。。。