![]() |
Creado por Thiago Russo
hace alrededor de 7 años
|
|
Pregunta | Respuesta |
o que é CAS (code access security) ? | O .NET ajuda a proteger seus computadores de código malicioso através de um mecanismo chamado segurança de acesso ao código (CAS), ou code access security. Em vez de dar a cada aplicação plena confiança, os aplicativos podem ser restringidos aos tipos de recursos que possam acessar e as operações que podem ser executadas. Ao usar o CAS, o código é a parte ñ confiável, vc precisa pedir permissão para executar determinadas operações ou acessar recursos protegidos. O Common Language Runtime (CLR) impõe restrições de segurança em código gerenciado e garante que seu código tem as permissões corretas para acessar recursos privilegiados. |
Cada código de permissão de acesso representa um dos seguintes direitos: | ■ O direito de acesso a um recurso protegido, como um arquivo ■ O direito de executar uma operação protegida, como acessar código não gerenciado |
CAS realiza as seguintes funções no .NET Framework: | ■ Define permissões para acessar recursos do sistema. ■ Ativa código p/ exigir que seus chamadores tenham permissões específicas. Ex: uma biblioteca que expõe métodos q criam arquivos devem impor q seus chamadores tenham direito para a entrada/saída de arquivo. ■ Ativa código p/ exigir q seus chamadores possuam uma assinatura digital. Desta forma, o código pode se certificar de q ele só é chamado por chamadores de uma organização ou localização particular. ■ Força todas essas restrições em tempo de execução. |
call stack o que é? e como o CAS trabalha com call stack? | A pilha de chamadas (call stack) é uma estrutura de dados que armazena informações sobre todos os métodos ativos em um momento específico. Portanto, se seu aplicativo é iniciado no método principal e, em seguida, chama o método A, que chama o método B. Todos os 3 métodos estão na call stack (pilha de chamadas). Qdo o método B retorna, apenas a principal (Main)e o método A estão pilha de chamadas. CAS percorre a pilha de chamadas e verifica se cada elemento na pilha tem as permissões necessárias. Dessa forma, vc pode ter certeza que um método menos confiável n pode chamar algum código restrito através de um método altamente confiável. |
Classes CAS | A classe base para todas as coisas relacionadas com a CAS é System.Security.CodeAccessPermission. Permissões que herdam de CodeAccessPermission são permissões tais como FileIOPermission, ReflectionPermission, ou SecurityPermission. Ao aplicar uma dessas permissões, vc pergunta ao CLR se tem permissão para executar uma operação protegida ou acessar um recurso. |
CAS de forma declarativa Exemplo |
Image:
Declarative Cas (image/png)
|
CAS de forma imperativa Exemplo |
Image:
Cas Impetative (image/png)
|
¿Quieres crear tus propias Fichas gratiscon GoConqr? Más información.