Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Sumário

A atualização de segurança MS11-100 da Microsoft limita o número máximo de chaves de formulário, arquivos e membros JSON para 1000 em uma solicitação HTTP. Por causa desta alteração, os aplicativos ASP.NET rejeitam solicitações que possuem mais do que 1000 destes elementos. Os clientes HTTP que fazem estes tipos de solicitação serão negados e uma mensagem de erro aparecerá no navegador da Web. A mensagem de erro geralmente terá um código de status HTTP 500. Este novo limite pode ser configurado em uma base por aplicativo. Consulte a seção "Resolução" para obter instruções de configuração.


Sintomas

As solicitações ASP.NET que têm várias chaves de formulário, arquivos ou carga JSON recebem uma resposta de erro do servidor. O Aplicativo faz logon no servidor que tem uma entrada Aviso com uma Fonte da versão específica do ASP.NET e um ID de Evento de 1309. O log do evento contém uma das seguintes mensagens: 


Mensagem 1:

Informação do aplicativo:
Domínio do aplicativo: /LM/W3SVC/1/ROOT/<Domínio do Aplicativo>
Nível de confiança: Médio
Caminho Virtual do Aplicativo: <Caminho VDIR>
Caminho do Aplicativo: <Caminho do Aplicativo>
Nome da máquina: <Nome da máquina>
Informação do processo:
ID do Processo: 0001
Nome do processo: w3wp.exe
Nome da conta: IIS APPPOOL\DefaultAppPool

Informações da exceção:
Tipo de exceção: HttpException
Mensagem da exceção: Os dados do formulário codificado URL não são válidos.
at System.Web.HttpRequest.FillInFormCollection()
at System.Web.HttpRequest.get_Form()
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)


Mensagem 2:

Informação do aplicativo:
Domínio do aplicativo: /LM/W3SVC/1/ROOT/<Domínio do Aplicativo>
Nível de confiança: Médio
Caminho Virtual do Aplicativo: <Caminho VDIR>
Caminho do Aplicativo: <Caminho do Aplicativo>
Nome da máquina: <Nome da máquina>

Informação do processo:
ID do Processo: 0001
Nome do processo: w3wp.exe
Nome da conta: IIS APPPOOL\DefaultAppPool

Informações da exceção:
Tipo de exceção: InvalidOperationException
Mensagem da exceção: A operação não é válida devido ao estado atual do objeto.
at System.Web.HttpRequest.FillInFilesCollection()
at System.Web.HttpRequest.get_Files()
at FileUpload.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint


Mensagem 3:

Informação do aplicativo:
Domínio do aplicativo: /LM/W3SVC/1/ROOT/<Domínio do Aplicativo>
Nível de confiança: Médio
Caminho Virtual do Aplicativo: <Caminho VDIR>
Caminho do Aplicativo: <Caminho do Aplicativo>
Nome da máquina: <Nome da máquina>

Informação do processo:
ID do Processo: 0001
Nome do processo: w3wp.exe
Nome da conta: IIS APPPOOL\DefaultAppPool

Informações da exceção:
Tipo de exceção: InvalidOperationException
Mensagem da exceção: A operação não é válida devido ao estado atual do objeto.
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
at System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input)
at Failing.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)



O arquivo de log do IIS mostra uma entrada que se parece com a seguinte:

2011-01-01 00:00:00 ::1 POST /machine/default.aspx - 80 - ::1 - 500 0 0 187




Causa

A atualização de segurança da Microsoft que o boletim de segurança MS11-100 resolve altera o número máximo padrão de chaves de formulários, arquivos e membros JSON que o ASP.NET irá aceitar em uma solicitação para 1.000. Esta alteração foi feita para resolver a vulnerabilidade da Negação de Serviço que o boletim de segurança MS11-100 da Microsoft documenta.


Resolução

Os aplicativos que atingem este limite para as chaves de formulários ou arquivos podem modificar o appSetting do ASP.NET aspnet:MaxHttpCollectionKeys, como mostrado abaixo no arquivo de configuração do aplicativo ASP.NET. Esta configuração resolve as mensagens de erro 1 e 2 na seção "Sintomas".

<configuration>
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="1000" />
</appSettings>
</configuration>



Observação Se você estiver usando o ASP.NET 1.1 em um sistema baseado em x86, a configuração é ajustada com a adição de um valor DWORD à seguinte chave do registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys

Se você estiver usando o ASP.NET 1.1 em um sistema baseado em x64, a configuração é ajustada com a adição de um valor DWORD à seguinte chave do registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys




Os aplicativos que atingem este limite para cargas JSON podem modificar o appSetting do ASP.NET aspnet:MaxJsonDeserializerMembers, como mostrado abaixo em um arquivo de configuração do aplicativo ASP.NET. Esta configuração resolve a mensagem de erro 3 na seção "Sintomas".

<configuration>
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="1000" />
</appSettings>
</configuration>




Observação Aumentar este valor acima da configuração padrão aumenta a suscetibilidade do seu servidor à vulnerabilidade da Negação de Serviço discutida no boletim de segurança MS11-100.


Referências

Para 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 a seguir para ler o artigo na Base de Dados de Conhecimento da Microsoft:

2638420 MS11-100: Vulnerabilidade no .NET Framework pode permitir a elevação de privilégio: 29 de dezembro de 2011

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×