Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os aplicativos ClickOnce estão sujeitos a restrições de segurança de acesso ao 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 que você entenda as implicações da segurança de acesso ao código para escrever seus aplicativos ClickOnce de acordo. Seus aplicativos podem usar a Confiança Total ou zonas parciais, como as zonas da Internet e da Intranet, para limitar o acesso.
Além disso, o ClickOnce usa certificados para verificar a autenticidade do editor do aplicativo e para assinar os manifestos do aplicativo e da implantação para provar que os arquivos não foram adulterados. A assinatura é uma etapa opcional, que facilita a alteração dos arquivos do aplicativo depois que os manifestos são gerados. No entanto, sem manifestos assinados, é difícil garantir que o instalador da aplicação não seja adulterado em ataques de segurança do tipo man-in-the-middle. Por esse motivo, recomendamos que você assine seus manifestos de aplicativo e implantação para ajudar a proteger seus aplicativos.
Zonas
Os aplicativos 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 navegador e baseiam-se na localização da aplicação. 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 a partir da Web | Zona Internet |
| Instalar a partir da Web | Zona Internet |
| Instalar a partir da partilha de ficheiros de rede | Zona Intranet Local |
| Instalar desde CD-ROM | Confiança total |
As permissões padrão são baseadas no local a partir do qual a versão original do aplicativo foi implantada; As atualizações do aplicativo herdarão essas permissões. Se o aplicativo estiver configurado para verificar se há atualizações de um local da Web ou de rede e uma versão mais recente estiver disponível, a instalação original poderá receber permissões para a zona da Internet ou da Intranet em vez de permissões de confiança total. Para evitar que os usuários sejam solicitados, um administrador de sistema pode especificar uma política de implantação do ClickOnce que define um editor de aplicativo específico como uma fonte confiável. Para computadores nos quais essa política é implantada, as permissões serão concedidas automaticamente e o usuário não será solicitado. Para obter mais informações, consulte Visão geral da implantação de aplicativos confiáveis. Para configurar a implantação de aplicativos confiáveis, o certificado pode ser instalado no nível da máquina ou da empresa. Para obter mais informações, consulte Como adicionar um editor confiável a um computador cliente para aplicativos ClickOnce.
Observação
No ClickOnce para .NET Core e .NET 5 ou posterior, esse recurso não é suportado. Para obter mais informações, consulte ClickOnce para .NET.
Políticas de segurança de acesso ao código
As permissões para uma aplicação são definidas pelas configurações no <elemento trustInfo> do manifesto da aplicação. O Visual Studio gera automaticamente essas informações com base nas configurações na página de propriedades Segurança do projeto. Um aplicativo ClickOnce recebe apenas as permissões específicas que ele solicita. Por exemplo, quando o acesso a arquivos requer permissões de confiança total, se o aplicativo solicitar permissão de acesso a arquivos, ele receberá apenas permissões de acesso a arquivos, não permissões de confiança total. Ao desenvolver seu aplicativo ClickOnce, você deve certificar-se de que você solicita apenas as permissões específicas que o aplicativo precisa. Na maioria dos casos, você pode usar as zonas da Internet ou da 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 requer permissões personalizadas, você pode criar uma zona personalizada. Para obter mais informações, consulte Como definir permissões personalizadas para um aplicativo ClickOnce.
Observação
No ClickOnce para .NET Core e .NET 5 ou posterior, a Segurança de Acesso ao Código não é suportada. No .NET Framework, o uso da Segurança de Acesso ao Código não é uma prática recomendada e não é recomendado.
A inclusão de uma permissão que não faz parte do conjunto de permissões padrão para a zona a partir da qual o aplicativo é implantado fará com que o usuário final seja solicitado a conceder permissão no momento da instalação ou atualização. Para evitar que os usuários sejam solicitados, um administrador de sistema pode especificar uma política de implantação do ClickOnce que define um editor de aplicativo específico como uma fonte confiável. Nos computadores em que essa política é implantada, as permissões serão concedidas automaticamente e o usuário não será solicitado.
Como desenvolvedor, é sua responsabilidade 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. O Visual Studio permite que você depure seu aplicativo na zona de segurança de destino e fornece ajuda no desenvolvimento de aplicativos seguros. Para obter mais informações, consulte Depurar aplicações ClickOnce que utilizam System.Deployment.Application.
Para obter mais informações sobre segurança de acesso a código e ClickOnce, consulte Segurança de acesso a código para aplicativos ClickOnce.
Certificados de assinatura de código
Para publicar um aplicativo usando a implantação do ClickOnce, você pode assinar o aplicativo e os manifestos de implantação do aplicativo usando um par de chaves pública/privada. As ferramentas para assinar um manifesto estão disponíveis na página Assinatura do Designer de Projeto. Para obter mais informações, consulte Página de assinatura, Project Designer.
Depois que os manifestos forem assinados, as informações do editor baseadas na assinatura Authenticode serão exibidas ao usuário na caixa de diálogo de permissões durante a instalação, para mostrar ao usuário que o aplicativo se originou de uma fonte confiável.
Para obter mais informações sobre ClickOnce e certificados, consulte ClickOnce e Authenticode.
ASP.NET autenticação baseada em formulário
Se quiser controlar quais implantações cada usuário pode acessar, não habilite o acesso anônimo a aplicativos ClickOnce implantados em um servidor Web. Em vez disso, você permitiria que os usuários acessassem as implantações instaladas com base na identidade de um usuário usando a autenticação do Windows.
O ClickOnce não suporta autenticação baseada em formulários ASP.NET porque usa cookies persistentes; Estes apresentam um risco de segurança porque residem na cache do navegador e podem ser pirateados. Portanto, se você estiver implantando aplicativos ClickOnce, qualquer cenário de autenticação além da autenticação do Windows não será suportado.
Argumentos aprovados
Uma consideração de segurança adicional ocorre se você tiver que passar argumentos para um aplicativo ClickOnce. O 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 final da URL usada para iniciar o aplicativo:
http://servername.adatum.com/WindowsApp1.application?username=joeuser
Por padrão, os argumentos de cadeia de caracteres de consulta são desabilitados. Para habilitá-los, o atributo trustUrlParameters deve ser definido no manifesto de implantação do aplicativo. Esse valor pode ser definido a partir do Visual Studio e de 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 para um banco de dados ou para a linha de comando sem verificar os argumentos para garantir que eles estejam seguros. Argumentos inseguros são aqueles que incluem caracteres de escape de banco de dados ou linha de comando que podem permitir que um usuário mal-intencionado manipule seu aplicativo para executar comandos arbitrários.
Observação
Os argumentos de cadeia de caracteres de consulta são a única maneira de passar argumentos para um aplicativo ClickOnce na inicialização. Não é possível passar argumentos para um aplicativo ClickOnce a partir da linha de comando.
Desdobrando conjuntos ofuscados
O Visual Studio inclui a Proteção preventiva gratuita - Comunidade Dotfuscator, que você pode usar para proteger seus aplicativos ClickOnce por meio de ofuscação de código e medidas de proteção ativa. Para obter detalhes, consulte a seção ClickOnce do Guia do Usuário da Comunidade Dotfuscator.