Share via


Developing Secure ActiveX Controls

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Este tópico aborda os requisitos especiais de controles que são acessados por páginas da Web baixadas para um navegador Internet ActiveX.

No entanto, as questões de segurança abordadas também são úteis para qualquer desenvolvedor que usa a tecnologia ActiveX em um aplicativo.

Essas considerações de segurança são importantes para qualquer controle ActiveX que é inicializado com dados persistentes (o local ou remoto), ou que está com scripts.

Controle A Microsoft® ActiveX® é um objeto COM que ofereça suporte a IUnknown interface e é Self-Registering.

ActiveX vários controles, especialmente aqueles usados em páginas da Web, suporte a IDispatch interface, que permite linguagens such as sistema desenvolvimento Microsoft JScript® (JScript) e Microsoft Visual Basic® Scripting Edition (VBScript) para acessar o controle facilmente.

O mesmo mecanismo pelo qual ActiveX os controles podem ser acessados por outros controles e aplicativos corretamente particularmente vulnerável a usar impropriamente, intencional torna e caso contrário.

De exemplo, se um controle ActiveX Marcada "seguro para script" Oferece suporte a um método que permite imprimir um arquivo para um não especificado da impressora, e se um usuário navega para uma página da Web que chama o controle, arquivos na máquina do usuário a podem ser impresso para outra impressora sobre o Internet sem conhecimento do usuário.

Existem duas diferenças significativas entre a maneira controles ActiveX são gerenciado em um área de trabalho Windows-Based OS execução Microsoft Internet Explorer e a maneira como esses controles são gerenciado em Windows Embedded CE.

  • Primeiro, Windows Embedded CE não tem o Component Categories Manager para registrar e controles cancelar o registro e para fornecer informações sobre categorias que são implementadas ou exigido por um controle.
    Portanto, todos os controles ActiveX devem ser registrados por manualmente edição Registro o sistema ou pelo programa de instalação que instala o controle.
  • Em segundo lugar, Explorer Internet para Windows Embedded CE não permite aos usuários baixar ActiveX controles por meio de navegador. No entanto, um página da Web ainda assim poderá carregar e executar controles ActiveX que são compilado na executar-imagem tempo ou que foi instalado por algum outro meio, such as Microsoft ActiveSync, se o navegador determina o controle é seguro para carregar.
    Quando Explorer Internet recebe uma solicitação para carregar um controle ActiveX, ele verifica a segurança URL zonas configurações no navegador para determinar se o controle pode ser executar, e se o usuário deve ser notificado que um controle deve ser carregado. Para obter mais informações, consulte Zonas de segurança URL.
    Se as configurações de segurança zona permitem o controle a ser carregado, o navegador consultará o controle para determinar se o controle implementa o IObjectSafety interface. Essa interface permite Explorer Internet para recuperar o atual inicialização ou recursos de script para um controle ActiveX.
    Um controle marcado como "INTERFACESAFE_FOR_UNTRUSTED_DATA" é provável que ele seja seguro para quaisquer argumentos possíveis. Da mesma forma, um controle marcado como "INTERFACESAFE_FOR_UNTRUSTED_CALLER" é provável que ele seja seguro para qualquer uso possível de suas propriedades, métodos e eventos.
    De exemplo, em resposta a uma consulta, o controle pode retornar que ele conhece os recursos INTERFACESAFE_FOR_UNTRUSTED_DATA e INTERFACESAFE_FOR_UNTRUSTED_CALLER, e que é seguro apenas para INTERFACESAFE_FOR_UNTRUSTED_DATA.
    O navegador pode e recusar para carregar o controle, ou ele pode pôr até uma caixa diálogo, solicitando o usuário se a operação deve ser permitida. Se o controle não implementar IObjectSafety, Internet Explorer verifica sinalizadores de compatibilidade no Registro para determinar se o controle está registrado como sendo seguros para script.
    Um controle está registrado como seguros para execução de scripts se a chave para o controle contém uma subchave sob a Categorias implementadas chave para o controle que contém o CATID_SafeForScripting GUID {7DD95801-9882-11CF-9FA9-00AA006C42C4}

Os desenvolvedores devem identificar um controle ActiveX como sendo seguro para inicialização e scripts somente depois de revisar cuidadosamente o controle para vulnerabilidades de segurança. Qualquer controle que não se destina a ser executar de um contêiner navegador deve não esteja registrado como seguros para scripts.

Os desenvolvedores também deverá assinar digitalmente os controles ActiveX. Assinatura digital informa os usuários onde o controle veio e verifica que o controle não foi violado com desde sua publicação.

Considerações sobre de segurança para controles ActiveX

Fundamentalmente a segurança de uma controle ActiveX depende como ele é acessado, por quem e sob quais condições freqüentes.

Quando um controle É considerado confiáveis

Em geral, um controle é considerada segura se não houver nenhuma maneira de ele ser usada por qualquer pessoa ou aplicativo para fazer o seguinte:

  • Obter informações sobre o local computador ou usuário
  • Expor informações particulares em de local computador ou rede
  • Executar sistema chamadas ou outras ações que poderia alteração ou destruir informações sobre o local computador ou rede
  • Iniciar um ataque de negação de serviço por consumindo recursos excessiva
  • Em qualquer resultados imprevisíveis causar maneira por está sendo usado para algo diferente sua finalidade

Dicas para avaliando como a segurança É O controle

Use a seguinte lista para ajudar a avaliar como seguro o controle é referente dados normais e os scripts:

  • Teste para saturações reserva, especialmente com entrada que foi possível criar um ataque de negação de serviço.
  • Teste que entrada aos parâmetros é aceito somente se a entrada está dentro um intervalo de valores que legitimamente poderia ser esperados e que entrada arbitrária não permite acessar para informações particulares.
  • Se o controle lê, grava, cria ou exclui dados persistentes arbitrários, você deve implementar proteções para garantir que esses métodos não podem ser aplicados inadequadamente.
  • Se for possível para o controle a ler de ou de gravação para o Registro, verifique se esses métodos não podem ser acessados por outro usuário ou aplicativo.
  • Não deixe sua avaliação de segurança Contas para que o controle pode fazer, não apenas o que o esperado fazer. Sua avaliação de segurança deve representar o real comportamento do controle.
    Se o controle executa ações que são inerentemente inseguro, such as expor ou excluindo dados particulares (e muitos controles úteis, como ferramentas de configuração sistema, são inerentemente inseguro), não se esqueça design o controle para executar apenas em privilegiado Web pages, such as o local zona intranet ou zona Sites privilegiado.
    Para evitar um controle ActiveX sejam usados em páginas diferente de um ele projetado para, o controle pode usar o modelo de objeto DHTML obter o localizador uniforme recurso (URL) da página que está tentando carregá-lo.
    Se o controle for executar de um site específico, ele pode, se recusam chamado de outro site, para carregar ou executar em uma capacidade limitada.

Para obter mais informações sobre considerações de segurança para criar controles ActiveX, consulte " Designing Seguro controles ActiveX " Na seção de Component Development daMSDN® Library.

See Also

Concepts

COM and DCOM Security