Select the product you need help with
Um pedido ASP.NET que possua muitas chaves de formulários, ficheiros ou membros de payload JSON falha com uma excepçãoArtigo: 2661403 - Ver produtos para os quais este artigo se aplica. SumárioA actualização de segurança MS11-100 da Microsoft limita o número máximo de chaves de formulários, ficheiros e membros JSON para 1000 num pedido HTTP. Devido a esta alteração, as aplicações ASP.NET rejeitam os pedidos que possuam mais de 1000 destes elementos. Os clientes HTTP que efectuam estes tipos de pedidos serão negados e aparecerá uma mensagem de erro no browser. A mensagem de erro terá geralmente um código de estado HTTP 500. Este novo limite pode ser configurado numa base por aplicação. Consulte a secção "Resolução" para ver as instruções de configuração. SintomasOs pedidos ASP.NET que possuam muitas chaves de formulários, ficheiros ou payloads JSON recebem uma resposta de erro do servidor. O registo da Aplicação no servidor possui uma entrada de Aviso com uma Origem que é uma versão específica do ASP.NET e uma ID do Evento de 1309. O registo do evento contém uma das mensagens seguintes: Mensagem 1: Informações da aplicação: Domínio da aplicação: /LM/W3SVC/1/ROOT/<Domínio de Aplicação> Nível de Fidedignidade: Média Caminho Virtual da Aplicação: <Caminho VDIR> Caminho da Aplicação: <Caminho da Aplicação> Nome da máquina: <Nome da Máquina> Informações do processo: ID de processo: 0001 Nome do processo: w3wp.exe Nome da conta: IIS APPPOOL\DefaultAppPool Informações da excepção: Tipo de excepção: HttpException Mensagem de excepção: Os dados de formulário com codificação URL não são válidos. em System.Web.HttpRequest.FillInFormCollection() em System.Web.HttpRequest.get_Form() em System.Web.HttpRequest.get_HasForm() em System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) em System.Web.UI.Page.DeterminePostBackMode() em System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) Mensagem 2: Informações da aplicação: Domínio da aplicação: /LM/W3SVC/1/ROOT/<Domínio de Aplicação> Nível de Fidedignidade: Média Caminho Virtual da Aplicação: <Caminho VDIR> Caminho da Aplicação: <Caminho da Aplicação> Nome da máquina: <Nome da Máquina> Informações do processo: ID de processo: 0001 Nome do processo: w3wp.exe Nome da conta: IIS APPPOOL\DefaultAppPool Informações da excepção: Tipo de excepção: InvalidOperationException Mensagem de excepção: A operação não é válida devido ao estado actual do objecto. em System.Web.HttpRequest.FillInFilesCollection() em System.Web.HttpRequest.get_Files() em FileUpload.Page_Load(Object sender, EventArgs e) em System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) em System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) em System.Web.UI.Control.OnLoad(EventArgs e) em System.Web.UI.Control.LoadRecursive() em System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint Mensagem 3: Informações da aplicação: Domínio da aplicação: /LM/W3SVC/1/ROOT/<Domínio de Aplicação> Nível de Fidedignidade: Média Caminho Virtual da Aplicação: <Caminho VDIR> Caminho da Aplicação: <Caminho da Aplicação> Nome da máquina: <Nome da Máquina> Informações do processo: ID de processo: 0001 Nome do processo: w3wp.exe Nome da conta: IIS APPPOOL\DefaultAppPool Informações da excepção: Tipo de excepção: InvalidOperationException Mensagem de excepção: A operação não é válida devido ao estado actual do objecto. em System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth) em System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth) em System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer) em System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit) em System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input) em Failing.Page_Load(Object sender, EventArgs e) em System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) em System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) em System.Web.UI.Control.OnLoad(EventArgs e) em System.Web.UI.Control.LoadRecursive() em System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) O ficheiro de registo dos IIS mostra uma entrada semelhante à que se segue: 2011-01-01 00:00:00 ::1 POST /machine/default.aspx - 80 - ::1 - 500 0 0 187 CausaA actualização de segurança da Microsoft que o boletim de segurança MS11-100 corrige altera o número predefinido máximo de chaves de formulários, ficheiros e membros JSON que o ASP.NET irá aceitar num pedido para 1000. Esta alteração foi feita para corrigir a vulnerabilidade ao Denial of Service que o boletim de segurança MS11-100 da Microsoft refere. ResoluçãoAs aplicações que atingem este limite para chaves de formulários ou ficheiros podem modificar a appSetting do ASP.NET aspnet:MaxHttpCollectionKeys, conforme indicado abaixo num ficheiro de configuração de uma aplicação ASP.NET. Esta definição corrige a mensagem 1 de erro e a mensagem 2 de erro da secção "Sintomas". Nota Se estiver a utilizar o ASP.NET 1.1 num sistema baseado em x86, a definição é ajustada acrescentando um valor DWORD à seguinte chave de registo: As aplicações que atingem este limite para payloads JSON podem modificar a appSetting do ASP.NET aspnet:MaxJsonDeserializerMembers, conforme indicado abaixo num ficheiro de configuração de uma aplicação ASP.NET. Esta definição corrige a mensagem 3 de erro da secção "Sintomas". Nota Aumentar este valor para acima da predefinição aumenta a susceptibilidade do seu servidor à vulnerabilidade ao Denial of Service, que é discutida no boletim de segurança MS11-100. ReferênciasPara obter mais informações sobre o boletim de segurança MS11-100, consulte o seguinte artigo da TechNet: Boletim de Segurança da Microsoft MS11-100 - Crítico Para obter mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft:
(http://technet.microsoft.com/pt-pt/security/bulletin/ms11-100)
2638420
(http://support.microsoft.com/kb/2638420/pt/
)
MS11-100: Vulnerabilidade no .NET Framework pode permitir a elevação de privilégios: 29 de Dezembro de 2011 PropriedadesArtigo: 2661403 - Última revisão: quinta-feira, 29 de Novembro de 2012 - Revisão: 4.0 A informação contida neste artigo aplica-se a:
| Traduções de Artigos
|


Voltar ao topo








