Share via


Protegendo Controles Personalizados do Servidor

Os controles personalizados do servidor são uma maneira estender a funcionalidade de Controles de servidor Web do ASP.NET.As seguintes diretrizes básicas de segurança são fornecidas para usuários e desenvolvedores de controles personalizados de servidor.Para obter mais informações sobre como criar controles personalizados de servidor, consulte Desenvolvendo Controles Personalizados ASP.NET Server.

Uma IDE como Microsoft Visual Studio 2005 simplifica o uso de controles personalizados, bem como o desenvolvimento.No entanto, as diretrizes de segurança listadas abaixo se aplicam independentemente de qual IDE é usada.

Para obter informações gerais sobre segurança de site Web ASP.NET, consulte Segurança de aplicativos da Web ASP.NET.

Diretrizes para Usuários de Controles Personalizados do Servidor

Há várias maneiras para você usar controles personalizados de servidor em um aplicativo da Web; por exemplo, você pode colocar arquivos de código-fonte diretamente na pasta App_Code do seu aplicativo da Web, usar controles de uma cache global de conjunto de módulos (assemblies) ou usar componentes comunitários instalados por um instalador automatizado como o Instalador de Conteúdo do Visual Studio.Em todos os casos, você deve tomar precauções contra a importação de código mal-intencionado ou código que tem impacto indesejado mas não intencionais no seu IDE e no servidor que hospeda os componentes.

Algumas diretrizes de segurança a serem consideradas como um usuário de controles personalizados de servidor são fornecidas abaixo.Esta lista não se destina a ser abrangente, mas a fornecer um ponto de partida para investigação:

  • Não trabalhe com códigos desconhecidos ou que você não entende as implicações de segurança desse.Para componentes da comunidade, é recomendável que você leia informações disponíveis da editora e determine se os componentes são assinados.

  • Considere não apenas a segurança em tempo de execução do controle, mas também a segurança em tempo de design.Para obter mais informações, consulte Protegendo Componentes Personalizados Criadores de Controle.

  • Quando possível, trabalhe com controles personalizados em conjuntos nomeados fortemente e com editores confiáveis.Para obter mais informações, consulte Como: Determinar o nome totalmente qualificado de um assembly.

  • Executar aplicativos da Web ASP.NET que incluem controles importados em uma conta com menos privilégios.Para obter mais informações sobre como executar processos ASP.NET com uma identidade que tenha permissões mínimas, consulte Configurando Identidade de Processo do ASP.NET.Em um IDE como Visual Studio 2005 ou Visual Web Developer Express, execute aplicativos como um usuário normal e não como um administrador a menos que você precise executar tarefas administrativas.

  • Revisar a segurança do sistema operacional e a lista de controle de acesso do Windows (ACLs) no servidor que hospeda os controles personalizados do servidor.Por exemplo, você deve garantir que os processos do ASP.NET sejam executado com uma identidade que tenha somente permissões mínimas necessárias para executar o aplicativo para que uma violação de segurança por um controle de servidor personalizado tenha um impacto mínimo em outros aplicativos hospedados.Para obter mais informações, consulte Configurando Identidade de Processo do ASP.NET.Além disso, revise as permissões de controles personalizados de servidor e certifique-se de que eles aderem às permissões de arquivos e pastas que a identidade do seu aplicativo ASP.NET deve ter para funcionar corretamente.Para obter mais informações, consulte ASP.NET Required Access Control Lists (ACLs).

  • Use segurança de acesso a código para restringir os recursos que o aplicativo da Web (com controles personalizados do servidor) pode acessar e as operações privilegiadas que ele pode executar.Para obter mais informações, consulte Segurança do Acesso ao código ASP.NET.

  • Use a ferramenta de Configuração .NET Framework (Mscorcfg.msc) para gerenciar e configurar conjuntos de módulos (assemblies) na cache global de conjuntos e para ajustar a política de segurança de acesso a código.Como Mscorcfg.msc destina-se a ajudar administradores experientes a executar tarefas relacionadas à configuração de aplicativos, trabalhe com o administrador do sistema para determinar se é apropriada para sua situação usá-lo.Para obter mais informações, consulte Ferramenta de configuração do .NET framework (Mscorcfg.msc).

Diretrizes para Desenvolvedores de Controles Personalizados do Servidor

Como um desenvolvedor de controles personalizados, você deve seguir práticas recomendadas gerais para a segurança nas páginas e controles do aplicativo ASP.NET e no .NET Framework.Em muitos casos, os usuários do seus controles personalizados de servidor talvez não saibam todos os detalhes de implementação ou as implicações de segurança.Você deve planejar isso seguindo as convenções de segurança estabelecidas e chamando claramente todas as permissões necessárias para que os componentes funcionem.Você pode começar a investigação de problemas Geral de segurança e soluções para aplicativos da Web com Protegendo sites da Web ASP.NET, guia do desenvolvedor do .NET estrutura Conceitos chaves sobre segurançae com os tópicos de segurança com o Site de padrões e práticas.

Após criar e implementar os controles personalizados do servidor Web, você deve decidir como entregar os componentes aos usuários.Dois métodos comuns de entrega são como um conjunto de módulos (assembly) ou como um componente da comunidade.Se você entregar seus componentes como um conjunto de módulos (assembly), você deve assinar seu conjunto (também chamado de assinatura de nome forte).A assinatura fornece ao conjunto de módulos (assembly) uma identidade exclusiva que outro software pode usar para identificar e explicitamente referir-se a ele.Há também outros benefícios, conforme detalhado na Programação com assemblies.

Se você entregar seus componentes como um componente da comunidade com um procedimento de instalação automatizada, então, você deverá assinar os componentes criptograficamente.A assinatura ajuda a verificar que os dados se originam de um terceiro específico criando uma assinatura digital que é exclusivo para essa parte.Uma maneira para criar componentes de comunidade para usar com o Visual Studio 2005 é utilizando o Instalador de Conteúdo do Visual Studio e criando arquivos .VSI que podem ser assinados.

Algumas diretrizes de segurança a serem consideradas ao de desenvolver componentes de controle de servidor personalizado são fornecidas abaixo.Esta lista não se destina a ser abrangente, mas a fornecer um ponto de partida para investigação:

  • Fornece instruções com os seus controles de servidor personalizados sobre como usá-los e as expectativas de recursos e as permissões que precisam para funcionar corretamente.

  • Assine digitalmente seus componentes.Se você compactar seu controle personalizado como um conjunto de módulos (assembly), assine o conjunto com um nome forte.Para obter mais informações, consulte Criando e usando Assemblies de Nome Forte.Se você usar um instalador automatizado como o Instalador de Conteúdo do Visual Studio, você ainda assim deve assinar seus componentes.

  • Siga as práticas recomendadas para gerenciamento de exceção em seu código.Para obter mais informações, consulte Capítulo 10 on the Site de padrões e práticas, por exemplo.

  • Se você pretende que os desenvolvedores de página adicionem os controles personalizados a caixa de ferramentas de designer visual, e acessem suas propriedades e eventos no navegador de propriedade, você deve considerar a segurança em tempo de design além da segurança em tempo de execução.Para obter mais informações, consulte Protegendo Componentes Personalizados Criadores de Controle.

  • Compreenda as principais ameaças às páginas do aplicativo da Web e controles, incluindo a inclusão de código, divulgação de informações, o sequestro de sessão, spoofing de identidade, manipulação de parâmetros e a espionagem de rede.Para este fim, execute uma análise de modelagem de ameaças de seus componentes antes da implantação.Para obter mais informações, consulte o Aplicativos de Web de modelagem de ameaças tópico no Site de padrões e práticas.

Consulte também

Conceitos

Protegendo Componentes Personalizados Criadores de Controle

Outros recursos

Padrões e Práticas de Site da Web

Criando e usando Assemblies de Nome Forte

Programação com assemblies

Segurança de aplicativos da Web ASP.NET

Desenvolvendo Controles Personalizados ASP.NET Server