Usando bibliotecas de código parcialmente confiável

 

System_CAPS_cautionCuidado

Segurança de Acesso do Código e Código Parcialmente Confiável

O .NET Framework fornece um mecanismo para a imposição de níveis variáveis de confiança em códigos diferentes em execução no mesmo aplicativo chamado CAS (Segurança de Acesso do Código).  O CAS no .NET Framework não deve ser usado como um mecanismo de imposição de limites de segurança com base na origem do código ou em outros aspectos da identidade. Estamos atualizando nossas diretrizes para refletir que o CAS e o Código Transparente de Segurança não terão suporte como um limite de segurança com código parcialmente confiável, especialmente o código de origem desconhecida. Não aconselhamos carregar e executar códigos de origens desconhecidas sem a adoção de medidas de segurança alternativas no local.

Essa política é aplicável à todas as versões do .NET Framework, mas não é aplicável ao .NET Framework incluído no Silverlight.

System_CAPS_noteObservação

Este tópico aborda o comportamento de assemblies de nomes fortes e aplica-se somente ao nível 1 assemblies.Código transparente de segurança, nível 2 assemblies de .NET Framework 4 ou posterior não são afetados por nomes fortes. Para obter mais informações sobre alterações no sistema de segurança, consulte Alterações na segurança do .NET Framework.

Aplicativos que recebem menos do que a confiança total do seu host ou de área restrita não tem permissão para chamar compartilhado bibliotecas gerenciadas, a menos que o escritor da biblioteca os permita, especificamente, através do uso do AllowPartiallyTrustedCallersAttribute atributo. Portanto, autores de aplicativos devem estar cientes que algumas bibliotecas não estarão disponíveis para eles em um contexto parcialmente confiável. Por padrão, todo o código que é executado em uma confiança parcial sandbox e não é a lista de assemblies de confiança total é parcialmente confiável. Se você não espera que seu código deve ser executado em um contexto parcialmente confiável ou para serem chamados pelo código parcialmente confiável, você não precisa se preocupar com as informações nesta seção. No entanto, se você escrever código que deve interagir com código parcialmente confiável ou operar em um contexto parcialmente confiável, você deve considerar os seguintes fatores:

  • Bibliotecas devem ser assinadas com um nome forte para serem compartilhados por vários aplicativos. Nomes fortes permitem que seu código seja colocado no cache de assembly global ou adicionado à lista de confiança total de um modo seguro AppDomain, e permitir que os consumidores verificar se uma determinada parte do código móvel realmente provém de você.

  • Por padrão, nomes fortes nível 1 bibliotecas compartilhadas executam implícito LinkDemand completa confiar automaticamente, sem ter de fazer algo o escritor da biblioteca.

  • Se um chamador não tem confiança total, mas ainda tenta chamar uma biblioteca, o tempo de execução lança um SecurityException e o chamador não tem permissão para vincular à biblioteca.

  • Para desabilitar o automático LinkDemand e evitar a exceção de ser lançada, você pode colocar o AllowPartiallyTrustedCallersAttribute atributo sobre o escopo do assembly de uma biblioteca compartilhada. Este atributo permite que suas bibliotecas seja chamado a partir do código gerenciado parcialmente confiável.

  • Código parcialmente confiável que é concedido acesso a uma biblioteca com esse atributo ainda está sujeito à mais restrições definidas pelo AppDomain.

  • Não é possível através de programação para código parcialmente confiável chame uma biblioteca que não tenha o AllowPartiallyTrustedCallersAttribute atributo.

As bibliotecas que são particulares a um aplicativo específico não exigem um nome forte ou AllowPartiallyTrustedCallersAttribute atributo e não pode ser referenciado por código potencialmente malicioso fora do aplicativo. Esse código é protegido contra uso indevido intencional ou não pelo código parcialmente confiável de móvel sem o desenvolvedor precise fazer nada extra.

Considere a possibilidade de habilitar explicitamente o uso pelo código parcialmente confiável para os seguintes tipos de código:

  • Código que foram cuidadosamente testado para vulnerabilidades de segurança e está em conformidade com as diretrizes descritas em diretrizes de codificação segura.

  • Bibliotecas de código fortes que são escritas especificamente para cenários parcialmente confiáveis.

  • Todos os componentes (se parcialmente ou totalmente confiável) assinado com um nome forte que será chamado pelo código que é baixado da Internet.

System_CAPS_noteObservação

Algumas classes na biblioteca de classes do .NET Framework não possuem o AllowPartiallyTrustedCallersAttribute atributo e não pode ser chamado pelo código parcialmente confiável.

Mostrar: