Introdução à segurança do acesso ao código
segurança de acesso do código é um mecanismo que ajuda a limitar o acesso código tem a recursos protegidos e operações.No .NET estrutura, segurança de acesso do código realiza as seguintes funções:
Define as permissões e os conjuntos de permissão que representam o direito de acesso vários recursos do sistema.
Permite que os administradores configurar a diretiva de segurança, associando conjuntos de permissões a grupos de código (grupos de código).
Permite que o código solicitar sistema autônomo permissões que ele requer para funcionar, bem sistema autônomo sistema autônomo permissões que seriam útil ter, e especifica quais permissões o código nunca deve ter.
Concede permissões a cada assembly é carregada, baseadas nas permissões solicitadas pelo código e as operações permitidas pela diretiva de segurança.
Permite que o código por demanda que chamadores tenham permissões específicas.
Permite que a demanda de seus ers telefonar possuem uma assinatura digital, permitindo que apenas telefonar ers de uma determinada organização de código ou o site para telefonar código protegido.
Impõe restrições no código em time de execução, comparando as permissões concedidas de cada telefonar er sobre o telefonar pilha para as permissões que ers telefonar deve ter.
Para determinar se o código está autorizado a acessar um recurso ou executar uma operação, o sistema de segurança do tempo de execução percorre o telefonar pilha, comparando as permissões concedidas de cada telefonar er da permissão que está sendo solicitada.Se qualquer chamador na pilha de chamadas não tiver a permissão usados desse sistema operacional, será lançada uma exceção de segurança e acesso é recusado.A movimentação da pilha é criada para ajudar a impedir ataques chamariz, onde menos confiável código chama o código altamente confiável e o usa para realizar ações não autorizadas.Exigem permissões de todos os chamadores em time de execução afeta o desempenho, mas é essencial para ajudar a proteger código contra ataques chamariz pelo código menos confiável.Para otimizar o desempenho, você pode ter seu código executar menos pilha walks; no entanto, você deve estar certo de que não exponham representa uma vulnerabilidade de segurança sempre que você fizer isso.
A figura a seguir ilustra a pilha walk que resultados quando um método no assembly A4 exige que os chamadores tem a permissão p.
Movimentação de pilha de segurança
Em um uso típico da segurança de acesso do código, um aplicativo baixa um controle de um site do host da intranet local diretamente para o cliente para que o usuário pode inserir dados.O controle é construído usando-se uma biblioteca de classes instalada.A seguir estão algumas das maneiras de segurança de acesso do código pode ser usada neste cenário:
Antes da time de carga, um administrador pode configurar a diretiva de segurança para especificar o código receber autoridade especial (permissão mais que o código de internet local geralmente receberia) se ele tiver uma assinatura digital específica.Por padrão, a predefinidosLocalIntranet chamado permissão conjunto está associado a todo o código é baixado da intranet local.
No time de carregamento, o time de execução o controle não concede mais permissões que não estejam associados a LocalIntranet permissão de chamada definido, a menos que o controle tenha uma assinatura confiável.Nesse caso, ele é concedido permissão s associados com o LocalIntranet permissão conjunto e potencialmente alguns adicionais permissão s por causa de sua assinatura confiável.
Em time de execução, sempre que um chamador (no caso do controle hospedado) acessa uma biblioteca que expõe os recursos protegidos ou uma biblioteca que chama o código não gerenciado, a biblioteca faz uma demanda de segurança, que faz com que as permissões dos chamadores para ser verificadas quanto à concede a permissão apropriada.Esses segurança verifica ajuda impedir que o controle execute ações não autorizadas nos computadores do cliente.