Compartilhar via


Protegendo arquivos de definição do navegador

Arquivos de definição do navegador (arquivos .browser) contêm informações sobre os recursos de classes de navegadores (como o Internet Explorer) e navegadores específicos (como Internet Explorer 6.0).Em tempo de execução, o ASP.NET usa as informações nos arquivos .browser para determinar qual navegador fez a solicitação, quais recursos o navegador tem e como processar a marcação para esse navegador.Para obter mais informações, consulte Navegador Definition Arquivo Esquema (navegadores elemento).

Para obter informações detalhadas sobre as práticas recomendadas para escrever código seguro e segurança de aplicativos, consulte o livro "Writing Secure Code" de Michael Howard e David LeBlanc e ver a orientação fornecida porPadrões e práticas da Microsoft.

Observação:

Arquivos de definição do navegador são novos no .NET Framework versão 2.0.Em versões anteriores do .NET Framework, o elemento browserCaps era usado para definições do navegador nos arquivos de configuração.

Segurança dos Arquivos de Definição do Navegador

Todos os recursos do navegador, incluindo as classes do .NET Framework e os arquivos de definição do navegador, exigem confiança parcial no nível do aplicativo e confiança total no nível global.O assembly global da definição do navegador está assinado com uma chave de máquina exclusiva antes do posicionamento na cache global de assembly e não pode ser violado.Os arquivos de definição do navegador no diretório %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers são protegidos por listas de controle de acesso (ACLs) e exigem privilégios administrativos para serem modificados.

Pastas de Arquivos de Definição do Navegador

O diretório global do navegador e a subpasta App_Browsers no nível do aplicativo devem conter somente arquivos com a extensão .browser de nome de arquivo.Somente arquivos .browser são compilados pelo recursos ASP.NET do navegador.Além disso, ASP.NET protege os arquivos nesses diretórios de serem servidos pelo servidor Web e de serem acessado por códigos de outros aplicativos.

ACLs de arquivos de definição do navegador

A tabela a seguir lista as ACLs que são definidas como padrão nos arquivos .browser localizados no diretório %SystemRoot%\Microsoft.NET\Framework\versão\CONFIG\Browsers.Essas ACLs também são definidos no diretório em si, mas eles incluem permissões de modificação para o grupo CREATOR OWNER.O diretório é somente leitura.

Conta do Windows

Permissões

Administradores

Controle Total

Conta do computador do ASP.NET (<servidor>\ASPNET)

Read and Execute

CREATOR OWNER

Controle Total

IIS_WPG (<servidor>\IIS_WPG)

Read and Execute

LOCAL SERVICE

Read and Execute

NETWORK SERVICE

Read and Execute

Usuários Avançados (<servidor>\Usuários Avançados)

Modify

SYSTEM

Controle Total

Usuários (<servidor>\Usuários)

Read and Execute

A tabela a seguir lista as ACLs que devem ser definidas em arquivos .browser na subpasta App_Browsers no nível do aplicativo.

Conta do Windows

Permissões

Administradores

Controle Total

IIS_WPG (<servidor>\IIS_WPG)

Read and Execute

INTERACTIVE

Read

Conta de convidado da Internet (<servidor>\IUSR_<servidor>)

Read

NETWORK

Read

NETWORK SERVICE

Read

SYSTEM

Controle Total

Usuários (<servidor>\Usuários)

Read and Execute

Conta Ferramenta de Admnistração de Web Site ASP.NET

Especial

Protegendo arquivos de definição do navegador

Não fazer o download ou instalar arquivos de definição do navegador, a menos que você confie sua origem.Por exemplo, examine um novo arquivo de definição do navegador para ver se quaisquer namespaces desconhecidos são referenciados em qualquer um dos seguintes atributos:

  • O atributo markupTextWriterType do elemento controlAdapters.

  • O atributo value do elemento capability.

  • Os atributos controlType e adapterType do elemento adapter.

Para obter informações sobre elementos e atributos válidos, consulte Navegador Definition Arquivo Esquema (navegadores elemento).

Alterar arquivos de definição do navegador

Se você adicionar novos arquivos de definição do navegador para o diretório global ou se você fizer alterações aos arquivos de definição global do navegador, essas alterações não têm efeito até que você recompilar manualmente a coleção de recursos do navegador usando a ferramenta Aspnet_regbrowsers.exe, disponível na pasta %SystemRoot%\Microsoft.NET\Framework\versão ou por meio de recompilação através de programação usando a classe BrowserCapabilitiesCodeGenerator.

No entanto, você não precisará recompilar as alterações nas definições de navegador no nível do aplicativo.As alterações para essas definições são recompiladas e reaplicadas dinamicamente.

Protegendo arquivos de definição do navegador em um ambiente de hospedagem compartilhado

Em um ambiente de hospedagem compartilhado, usuários mal-intencionados podem potencialmente modificar configurações do arquivo de definição do navegador através de modificação direta dos arquivos de definição do navegador, modificação por meio de APIs de configuração e outras ferramentas de administração e configuração.Para atenuar essa ameaça, mantenha ACLs fortes nos arquivos de definição do navegador.O conteúdo dos diretórios de arquivo de definição do navegador é compilado, portanto, eles devem ser protegidos da mesma forma que qualquer outro diretório de código do aplicativo.Se um usuário é impedido de adicionar código ao aplicativo pelo administrador do host, o usuário também deve ser impedido de adicionar arquivos de definição do navegador.

Mantendo uma trava de arquivo em um arquivo de definição do navegador

Somente várias tentativas de salvar um arquivo de definição do navegador ou abrir um identificador de arquivo podem bloquear um arquivo de definição do navegador.Um usuário mal-intencionado pode tentar bloquear os arquivos de definição de navegadores no diretório %SystemRoot%\Microsoft.NET\Framework\versão\CONFIG\Browsers.No entanto, bloquear um arquivo de definição do navegador requer confiança total, que está desativada no ASP.NET por padrão.

Usando a configuração API para ler arquivos arbitrários

As classes da API de configuração de definição do navegador não podem ler os diretórios que não fazem parte do domínio de aplicativo, ou quaisquer arquivos que não têm um extensão de nome de arquivo .browser.

Recursos de Cache de Navegador

Em tempo de execução, informações do arquivo de definição do navegador são mescladas em uma coleção de navegadores conhecidos em um objeto BrowserCapabilitiesFactory.Quando uma solicitação é feita, o ASP.NET identifica o navegador solicitante pelo cabeçalho de solicitação e compila um objeto HttpCapabilitiesBase que corresponde ao navegador solicitante.O objeto é armazenado em cache e pode ser usado novamente para uma outra solicitação feita pelo mesmo navegador.

Um cliente mal-intencionado pode tentar sobrecarregar o servidor Web com solicitações onde cada nova solicitação usa um cabeçalho de solicitação diferente, fazendo com que o ASP.NET gere e armazene em cache os objetos de recursos do navegador para cada solicitação, que por sua vez pode resultar em um ataque de negação de serviço.Para atenuar essa ameaça, configure o atributo userAgentCacheKeyLength do elemento Elemento browserCaps (Esquema de configurações do ASP.NET) no arquivo Machine.config ou em um arquivo Web.config.Este elemento define o comprimento de caracteres para usar como a chave para identificar objetos de capacidades no cache interno.O padrão é 64.Você pode reduzir esse valor para torná-lo o mais provável que um navegador correspondência será encontrado no cache, reduzindo a carga no cache.

Exceções

Para evitar que informações confidenciais sejam expostas a fontes indesejadas, configure seu aplicativo para não exibir mensagens de erro detalhadas ou para exibir mensagens de erro detalhadas somente quando o cliente é o próprio servidor Web.Para obter mais informações, consulte customErrors elemento (esquema configurações ASP.NET).

Log de Eventos

Se o servidor está executando o Windows Server 2003, você pode melhorar a segurança do seu aplicativo protegendo o log de eventos e configurando parâmetros sobre o tamanho, retenção, e assim por diante do log de eventos para impedir uma ataque indireto de negação serviço contra ele.Para obter mais informações sobre como configurar logs de eventos, procure "Visualizar Eventos" na Ajuda e Suporte do Windows.

Consulte também

Tarefas

Como: Detectar tipos de navegador em páginas da Web do ASP.NET

Conceitos

Controles de Servidor Web do ASP.NET e Recursos do Navegador

Protegendo arquivos de definição do navegador

Cenários de configuração ASP.NET

Visão geral sobre filtragem de dispositivo do ASP.NET

Visão Geral Arquitetural do Comportamento de Controle Adaptativo

Visão geral sobre Desenvolvimento de Aplicativos para Dispositivos ASP.NET Móveis

Protegendo configuração ASP.NET

Referência

Navegador Definition Arquivo Esquema (navegadores elemento)

Outros recursos

Protegendo sites da Web ASP.NET