Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Esse conteúdo só se aplica ao .NET Framework, a menos que especificado de outra forma.
Antes do lançamento do .NET Framework, todo o código em execução no computador de um usuário tinha os mesmos direitos ou permissões para acessar recursos que um usuário do computador tinha. Por exemplo, se o usuário tiver permissão para acessar o sistema de arquivos, o código poderá acessar o sistema de arquivos; se o usuário tiver permissão para acessar um banco de dados, o código poderá acessar esse banco de dados. Embora esses direitos ou permissões possam ser aceitáveis para código em executáveis que o usuário instalou explicitamente no computador local, eles podem não ser aceitáveis para código potencialmente mal-intencionado proveniente da Internet ou de uma Intranet local. Esse código não deve ser capaz de acessar os recursos do computador do usuário sem permissão.
O .NET Framework apresenta uma infraestrutura chamada Code Access Security que permite diferenciar as permissões ou direitos que o código tem dos direitos que o usuário tem. Por padrão, o código proveniente da Internet e da Intranet só pode ser executado no que é conhecido como confiança parcial. A confiança parcial sujeita um aplicativo a uma série de restrições: entre outras coisas, um aplicativo é impedido de acessar o disco rígido local e não pode executar código não gerenciado. O .NET Framework controla os recursos que o código tem permissão para acessar com base na identidade desse código: de onde ele veio, se ele tem um Strong-Named Assemblies, se ele está assinado com um certificado e assim por diante.
A tecnologia ClickOnce, que você usa para implantar aplicativos do Windows Forms, ajuda a facilitar o desenvolvimento de aplicativos executados em confiança parcial, em confiança total ou em confiança parcial com permissões elevadas. O ClickOnce fornece recursos como Elevação de Permissão e Implantação de Aplicativo Confiável para que seu aplicativo possa solicitar permissões de confiança total ou elevadas do usuário local de maneira responsável.
Noções básicas sobre segurança no .NET Framework
A segurança de acesso ao código permite que o código seja confiável em diferentes graus, dependendo de onde o código se origina e de outros aspectos da identidade do código. Para obter mais informações sobre as evidências que o common language runtime usa para determinar a política de segurança, consulte Evidências. Ele ajuda a proteger os sistemas de computador contra códigos mal-intencionados e ajuda a proteger o código confiável contra comprometer a segurança intencional ou acidentalmente. A segurança de acesso ao código também oferece mais controle sobre quais ações seu aplicativo pode executar, pois você pode especificar apenas as permissões que precisa que seu aplicativo tenha. Segurança de acesso ao código afeta todo o código gerenciado que se destina ao runtime da linguagem comum, mesmo que esse código não faça uma única verificação de permissão de acesso ao código. Para obter mais informações sobre segurança no .NET Framework, consulte Os principais conceitos de segurança e noções básicas de segurança de acesso de código.
Se o usuário executar um arquivo executável do Windows Forms diretamente de um servidor Web ou de um compartilhamento de arquivos, o grau de confiança concedido ao seu aplicativo dependerá de onde o código reside e de como ele é iniciado. Quando um aplicativo é executado, ele é avaliado automaticamente e recebe um conjunto de permissões nomeado do common language runtime. Por padrão, o código do computador local recebe o conjunto de permissões de Confiança Total, o código de uma rede local recebe o conjunto de permissões da Intranet Local e o código da Internet recebe o conjunto de permissões da Internet.
Observação
No .NET Framework versão 1.0 Service Pack 1 e Service Pack 2, o grupo de códigos de zona da Internet recebe o conjunto de permissões Nothing. Em todas as outras versões do .NET Framework, o grupo de códigos de zona da Internet recebe o conjunto de permissões da Internet.
As permissões padrão concedidas em cada um desses conjuntos de permissões são listadas no tópico Política de Segurança Padrão . Dependendo das permissões que o aplicativo recebe, ele é executado corretamente ou gera uma exceção de segurança.
Muitos aplicativos do Windows Forms serão implantados usando o ClickOnce. As ferramentas usadas para gerar uma implantação do ClickOnce têm padrões de segurança diferentes do que foi discutido anteriormente. Para obter mais informações, consulte a discussão a seguir.
As permissões reais concedidas ao aplicativo podem ser diferentes dos valores padrão, pois a política de segurança pode ser modificada; isso significa que seu aplicativo pode ter permissão em um computador, mas não em outro.
Desenvolvendo um aplicativo do Windows Forms mais seguro
A segurança é importante em todas as etapas de desenvolvimento de aplicativos. Comece examinando e seguindo as Diretrizes de Codificação Segura.
Em seguida, decida se seu aplicativo deve ser executado com total confiança ou se deve ser executado em confiança parcial. Executar seu aplicativo com total confiança facilita o acesso aos recursos no computador local, mas expõe seu aplicativo e seus usuários a riscos de alta segurança se você não projetar e desenvolver seu aplicativo estritamente de acordo com o tópico Diretrizes de Codificação Segura. Executar seu aplicativo em confiança parcial facilita o desenvolvimento de um aplicativo mais seguro e reduz muitos riscos, mas requer mais planejamento em como implementar determinados recursos.
Se você escolher a confiança parcial (ou seja, os conjuntos de permissões da Internet ou intranet local), decida como deseja que seu aplicativo se comporte nesse ambiente. O Windows Forms fornece maneiras alternativas e mais seguras de implementar recursos quando em um ambiente semi-confiável. Determinadas partes do aplicativo, como o acesso a dados, podem ser projetadas e gravadas de forma diferente para ambientes de confiança parcial e de confiança total. Alguns recursos do Windows Forms, como configurações de aplicativo, foram projetados para funcionar em confiança parcial. Para obter mais informações, consulte a Visão geral das Configurações do Aplicativo.
Se o aplicativo precisar de mais permissões do que a confiança parcial permite, mas você não quiser executar com total confiança, poderá executar em confiança parcial, afirmando apenas as permissões adicionais necessárias. Por exemplo, se você quiser executar em confiança parcial, mas precisar conceder ao aplicativo acesso somente leitura a um diretório no sistema de arquivos do usuário, poderá solicitar FileIOPermission somente para esse diretório. Usada corretamente, essa abordagem pode dar ao aplicativo maior funcionalidade e minimizar os riscos de segurança para seus usuários.
Ao desenvolver um aplicativo que será executado em confiança parcial, acompanhe quais permissões seu aplicativo deve executar e quais permissões seu aplicativo pode usar opcionalmente. Quando todas as permissões forem conhecidas, você deverá fazer uma solicitação declarativa de permissão no nível do aplicativo. Solicitar permissões informa o tempo de execução do .NET Framework sobre quais permissões seu aplicativo precisa e quais permissões ele especificamente não deseja. Para obter mais informações sobre como solicitar permissões, consulte Solicitando permissões.
Ao solicitar permissões opcionais, você deve lidar com exceções de segurança que serão geradas se o aplicativo executar uma ação que exija permissões não concedidas a ele. O manuseio adequado do SecurityException garantirá que seu aplicativo possa continuar operando. Seu aplicativo pode usar a exceção para determinar se um recurso deve ser desabilitado para o usuário. Por exemplo, um aplicativo pode desabilitar a opção de menu Salvar se a permissão de arquivo necessária não for concedida.
Às vezes, é difícil saber se você afirmou todas as permissões apropriadas. Uma chamada de método que parece inócua na superfície, por exemplo, pode acessar o sistema de arquivos em algum momento durante sua execução. Se você não implantar seu aplicativo com todas as permissões necessárias, ele pode funcionar bem durante os testes na sua área de trabalho, mas falhar quando implantado. O SDK do .NET Framework 2.0 e o Visual Studio 2005 contêm ferramentas para calcular as permissões que um aplicativo precisa: a ferramenta de linha de comando MT.exe e o recurso Calcular Permissões do Visual Studio, respectivamente.
Os tópicos a seguir descrevem recursos adicionais de segurança do Windows Forms.
| Tópico | Descrição |
|---|---|
| - Acesso a arquivos e dados mais seguros nos Windows Forms | Descreve como acessar arquivos e dados em um ambiente de confiança parcial. |
| - Impressão mais segura nos Windows Forms | Descreve como acessar recursos de impressão em um ambiente de confiança parcial. |
| - Considerações adicionais de segurança nos Windows Forms | Descreve a execução de manipulação de janela, o uso da Área de Transferência e a realização de chamadas para código não gerenciado em um ambiente de confiança parcial. |
Implantando um aplicativo com as permissões apropriadas
O meio mais comum de implantar um aplicativo do Windows Forms em um computador cliente é com o ClickOnce, uma tecnologia de implantação que descreve todos os componentes que seu aplicativo precisa executar. O ClickOnce usa arquivos XML chamados manifestos para descrever os assemblies e arquivos que compõem seu aplicativo e também as permissões necessárias para seu aplicativo.
O ClickOnce tem duas tecnologias para solicitar permissões elevadas em um computador cliente. Ambas as tecnologias dependem do uso de certificados Authenticode. Os certificados ajudam a fornecer alguma garantia aos usuários de que o aplicativo veio de uma fonte confiável.
A tabela a seguir descreve essas tecnologias.
| Tecnologia de autorização elevada | Descrição |
|---|---|
| Elevação de permissão | Solicita ao usuário uma caixa de diálogo de segurança na primeira vez em que seu aplicativo é executado. A caixa de diálogo Elevação de Permissão informa ao usuário sobre quem publicou o aplicativo, para que o usuário possa tomar uma decisão informada sobre se deseja conceder confiança adicional a ele |
| Implantação de aplicativo confiável | Envolve um administrador do sistema executando uma instalação única do certificado Authenticode de um editor em um computador cliente. Desse ponto em diante, todos os aplicativos assinados com o certificado são considerados confiáveis e podem ser executados com total confiança no computador local sem solicitações adicionais. |
Qual tecnologia você escolher dependerá do seu ambiente de implantação. Para obter mais informações, consulte Escolhendo uma estratégia de implantação do ClickOnce.
Por padrão, os aplicativos ClickOnce implantados usando o Visual Studio ou as ferramentas do SDK do .NET Framework (Mage.exe e MageUI.exe) são configurados para serem executados em um computador cliente que tenha Confiança Total. Se você estiver implantando seu aplicativo usando a confiança parcial ou usando apenas algumas permissões adicionais, precisará alterar esse padrão. Você pode fazer isso com o Visual Studio ou a ferramenta SDK do .NET Framework MageUI.exe ao configurar sua implantação. Para obter mais informações sobre como usar MageUI.exe, consulte Passo a passo: implantando manualmente um aplicativo ClickOnce. Veja também como definir permissões personalizadas para um aplicativo ClickOnce ou como definir permissões personalizadas para um aplicativo ClickOnce.
Para obter mais informações sobre os aspectos de segurança do ClickOnce e da Elevação de Permissão, consulte Como proteger aplicativos ClickOnce. Para obter mais informações sobre a Implantação de Aplicativos Confiáveis, consulte Visão geral da implantação de aplicativos confiáveis.
Testando o aplicativo
Se você implantou seu aplicativo Windows Forms usando o Visual Studio, poderá habilitar a depuração em confiança parcial ou um conjunto de permissões restritas do ambiente de desenvolvimento. Veja também como depurar um aplicativo ClickOnce com permissões restritas.
Consulte também
.NET Desktop feedback