Partilhar via


Protegendo aplicativos ClickOnce

Os aplicativos ClickOnce estão sujeitos às restrições de segurança de acesso a código no .NET Framework para ajudar a limitar o acesso que o código tem a recursos e operações protegidos. Por esse motivo, é importante compreender as implicações de segurança de acesso a código para desenvolver seus aplicativos ClickOnce adequadamente. Seus aplicativos podem usar o modo Confiança Total ou zonas parciais, como as zonas da Internet e intranet, para limitar o acesso.

Além disso, o ClickOnce usa certificados para verificar a autenticidade do editor do aplicativo e assinar os manifestos do aplicativo e de implantação para provar que os arquivos não foram violados. Assinar é uma etapa opcional, o que facilita alterar os arquivos do aplicativo depois que os manifestos são gerados. No entanto, sem manifestos assinados, é difícil assegurar que o instalador do aplicativo não seja violado em ataques de segurança a intermediários. Por isso, recomendamos assinar seus manifestos do aplicativo e de implantação para ajudar a proteger seus aplicativos.

Zonas

Os aplicativos que são implantados usando a tecnologia ClickOnce são restritos a um conjunto de permissões e ações definidas pela zona de segurança. As zonas de segurança são definidas no Internet Explorer e baseadas no local do aplicativo. A tabela a seguir lista as permissões padrão com base no local de implantação:

Local de implantação

Zona de segurança

Executar da Web

Zona da Internet

Instalar da Web

Zona da Internet

Instalar do compartilhamento de arquivos de rede

Zona de Intranet Local

Instalar de CD-ROM

Confiança Total

As permissões padrão são baseadas no local do qual a versão original do aplicativo foi implantada; as atualizações para o aplicativo herdarão as permissões. Se o aplicativo estiver configurado para verificar se há atualizações de um local na Web ou rede e uma versão mais recente estiver disponível, a instalação original poderá receber permissões para a zona da Internet ou intranet em vez de permissões de confiança total. Para evitar solicitações aos usuários, um administrador de sistema poderá especificar uma política de implantação ClickOnce que defina um editor de aplicativos específico como uma fonte confiável. Para computadores nos quais esta política é implantada, as permissões serão concedidas automaticamente e o usuário não será interpelado. Para obter mais informações, consulte Visão geral da implantação de aplicativos confiáveis. Para configurar a implantação do aplicativo de confiança, o certificado poderá ser instalado no computador ou em nível corporativo. Para obter mais informações, consulte Como adicionar um fornecedor confiável a um computador cliente para aplicativos ClickOnce.

Políticas de segurança de acesso a código

As permissões para um aplicativo são determinadas pelas configurações no elemento Elemento <trustInfo>(aplicativo ClickOnce) do manifesto do aplicativo. Visual Studio gerencia automaticamente essas informações com base nas configurações na página de propriedades de Segurança do projeto. Um aplicativo ClickOnce recebe apenas as permissões específicas que ele solicita. Por exemplo, onde o acesso ao arquivo exige permissões de confiança total, se o aplicativo solicitar permissão de acesso a arquivos, ele receberá apenas permissão de acesso a arquivos, não permissões de confiança total. Ao desenvolver seu aplicativo ClickOnce, certifique-se de solicitar apenas as permissões específicas que o aplicativo precisa. Na maioria dos casos, você pode usar zonas da Internet ou intranet local para limitar seu aplicativo à confiança parcial. Para obter mais informações, consulte Como definir uma zona de segurança para um aplicativo ClickOnce. Se seu aplicativo exigir permissões personalizadas, você poderá criar uma zona personalizada. Para obter mais informações, consulte Como definir permissões personalizadas para um aplicativo ClickOnce.

Incluir uma permissão que não faça parte do conjunto de permissões padrão para a zona da qual o aplicativo será implantado fará com que o usuário final seja solicitado a conceder permissão no momento da instalação ou atualização. Para evitar solicitações aos usuários, um administrador de sistema poderá especificar uma política de implantação ClickOnce que defina um editor de aplicativos específico como uma fonte confiável. Em computadores onde esta política é implantada, permissões serão concedidas automaticamente e o usuário não será interpelado.

Como um desenvolvedor, você é responsável por garantir que seu aplicativo seja executado com as permissões apropriadas. Se o aplicativo solicitar permissões fora de uma zona durante o tempo de execução, uma exceção de segurança poderá aparecer. Visual Studio permite depurar seu aplicativo na zona de segurança de destino e fornece ajuda para desenvolver aplicativos seguros. Para obter mais informações, consulte Como depurar um aplicativo ClickOnce com permissões restritas.

Para obter mais informações sobre segurança de acesso a código e ClickOnce, consulte Segurança de acesso do código para aplicativos ClickOnce.

Certificados de assinatura de código

Para publicar um aplicativo usando a implantação de ClickOnce, você pode assinar os manifestos do aplicativo e de implantação para o aplicativo ao usar um par de chaves pública/privada. As ferramentas para assinar um manifesto estão disponíveis na página Assinando do Designer de Projeto. Para obter mais informações, consulte Página de Assinatura, Designer de Projeto. Como alternativa, você pode assinar os manifestos com um arquivo de chave durante o processo de publicação, usando o Publish Wizard.

Depois que os manifestos são assinados, as informações do editor baseadas na assinatura Authenticode serão exibidas para o usuário na caixa de diálogo de permissões durante a instalação, para mostrar que o aplicativo é oriundo de uma fonte confiável.

Para obter mais informações sobre ClickOnce e certificados, consulte ClickOnce e Authenticode.

Autenticação baseada em formulários ASP.NET

Se você desejar controlar quais implantações cada usuário pode acessar, não habilite acesso anônimo aos aplicativos ClickOnce implantados em um servidor Web. Em vez disso, habilite acesso de usuários às implantações instaladas com base em uma identidade de usuário usando a autenticação do Windows.

ClickOnce não oferece suporte à autenticação baseada em formulários ASP.NET, pois ela usa cookies persistentes; eles representam um risco à segurança porque residem no cache do Internet Explorer e podem ser violados. Portanto, se você estiver implantando aplicativos ClickOnce, não haverá suporte a qualquer cenário de autenticação além da autenticação do Windows.

Passando argumentos

Uma consideração adicional sobre segurança ocorrerá se você tiver que passar argumentos para um aplicativo ClickOnce. ClickOnce permite que os desenvolvedores forneçam uma cadeia de caracteres de consulta para aplicativos implantados na Web. A cadeia de caracteres de consulta assume a forma de uma série de pares nome-valor no fim da URL utilizada para iniciar o aplicativo:

http://servername.adatum.com/WindowsApp1.application?username=joeuser

Por padrão, os argumentos da cadeia de caracteres de consulta estão desabilitados. Para habilitá-los, o atributo trustUrlParameters deverá ser definido no manifesto de implantação do aplicativo. Esse valor pode ser definido de Visual Studio e MageUI.exe. Para obter etapas detalhadas sobre como habilitar a passagem de cadeias de caracteres de consulta, consulte Como recuperar informações de cadeia de caracteres de consulta em um aplicativo ClickOnce online.

Você nunca deve passar argumentos recuperados por meio de uma cadeia de caracteres de consulta a um banco de dados ou linha de comando sem verificar os argumentos para garantir que eles sejam seguros. Os argumentos inseguros são os que incluem caracteres de escape da linha de comando ou banco de dados que poderiam permitir que um usuário mal-intencionado manipulasse o seu aplicativo e executasse comandos arbitrários.

Dica

Os argumentos de cadeia de caracteres de consulta são a única maneira de passar argumentos para um aplicativo ClickOnce na inicialização.Você não poderá passar argumentos para um aplicativo ClickOnce da linha de comando.

Implantando assemblies ofuscados

Talvez você deseje ofuscar seu aplicativo ao usar o Dotfuscator para evitar que outras pessoas executem engenharia reversa do código. No entanto, o ofuscamento do assembly não é integrado ao Visual Studio IDE ou ao processo de implantação do ClickOnce. Portanto, será necessário executar o ofuscamento fora do processo de implantação, talvez usando uma etapa de pós-compilação. Depois de compilar o projeto, você executaria as seguintes etapas manualmente, fora do Visual Studio:

  1. Execute o ofuscamento ao usar o Dotfuscator.

  2. Use Mage.exe ou MageUI.exe para gerar os manifestos do ClickOnce e assiná-los. Para obter mais informações, consulte Mage.exe (Ferramenta de Geração e Edição de Manifesto) e MageUI.exe (Ferramenta de Geração e Edição de Manifesto, cliente gráfico).

  3. Publicar manualmente (copiar) os arquivos no local de origem de sua implantação (servidor Web, compartilhamento UNC ou CD-ROM).

Consulte também

Conceitos

Segurança e implantação do ClickOnce

Escolhendo uma estratégia de implantação do ClickOnce