Solicitar ao usuário para instalar o ActiveX/.Líquido de Biblioteca de Classe a partir do navegador

StackOverflow https://stackoverflow.com/questions/1529997

Pergunta

Eu construir uma .NET projeto de Biblioteca de Classe que acessa o mshtml.HTMLDocument quando chamado (a partir de JavaScript).Tudo funciona ok na minha máquina desde que eu mudei as permissões .Configuração de rede para Sites Confiáveis para ter acesso Completo.

Mas para os usuários finais eu seria como o Internet Explorer para notificá-los apenas como, por exemplo, o Windows Update não.

Eu tinha queimado o assembly com um nome forte e com uma auto-assinado, e eu estou afirmando que o código não gerenciado SecurityPermission, mas ainda não 'barra amarela' perguntando ao usuário.

Alguém sabe como acionar essa inspiração?Obrigado

Mais tarde editar :mais alguns detalhes:Eu sou incorporar o componente como <object classid="dllname.dll#namespace.classname" ><object> e ele funciona, mas não tem as permissões de segurança.

Se eu incorporar-lo como <object classid="clsid:..guid.." codebase="dllname.dll#-1,-1,-1,-1"></object>, as permissões para a instalação de janelas de pop-up vem, mas o objeto de falha ao criar uma instância.

Atualização:Eu fiz a minha classe um COM um, implementado Seguro para scripts, eu fiz uma MSI e colocá-lo em um .Arquivo CAB.Ele instala, se o usuário tem o meu certificado em Raízes Confiáveis, e ele funciona.

Ele não funciona no entanto, se ele não é confiável (sem perguntas para o usuário, apenas '..bloqueou a seguinte activex a partir de..'.Não que realmente significa Eu tenho que colocar meu dinheiro em um certificado SSL?!?

Foi útil?

Solução

Eu estou supondo que sua pergunta é esta:você pode forçar ou seja, para solicitar que o usuário instale um (anteriormente desconhecido) certificado, a fim de permitir, de uma maneira assinado e seguro controle ActiveX para ser executado em uma página?(Se esta não é a sua pergunta, comentário e posso rever.)

Resposta curta:não. Você precisará desembolsar $$$ para assinatura de código de cert a partir de uma autoridade de certificação confiável.(o que é, AFAIK, diferente de um certificado SSL)

Resposta longa:

A partir de uma perspectiva de segurança, a ser assinado com um certificado desconhecido é semelhante a ser assinados, porque não há autoridade confiável, informando o cliente que ele pode confiar que o código.E no IE configurações padrão são para não permitir que controles ActiveX não-assinados para ser baixado e usado.

Se o que você está tentando fazer, foram admitidos, em seguida, um experiente atacante poderia simplesmente criar um cert, assiná-lo, e assim, torná-lo mais fácil para os usuários a executar o seu código de ataque.

Certamente, existem alternativas, mas todas envolvem os clientes a tomar medidas para alterar as suas configurações do IE, ou (em uma intranet definição) com que os administradores empurrar as alterações para as configurações do cliente.

Aqui está mais algumas informações sobre este a partir do TechNet (http://technet.microsoft.com/en-us/library/cc505863.aspx):

O Internet Explorer não está configurado para confiar na autoridade de certificação Qualquer pessoa, incluindo os atacantes, pode criar sua própria autoridade de CERTIFICAÇÃO e emitir certificados.Portanto, Internet Explorer não confiar em todos os CAs por padrão.Em Vez Disso, O Internet Explorer confia apenas um punhado de CAs públicas.Se o certificado foi emitido por uma não confiáveis CA e o site é sobre as Internet pública, o servidor o administrador deve adquirir um certificado de uma autoridade de CERTIFICAÇÃO confiável.Se o site na intranet, um cliente o administrador deve configurar O Internet Explorer confiar a emissão de AC.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top