Visão geral de codificação segura
Esta seção fornece que uma visão geral sobre o código de maneiras diferentes pode ser projetada para trabalhar com o sistema de segurança.
Código de segurança neutro
Código de segurança neutro não faz nada explícita com o sistema de segurança.Seja executada com permissões que ele recebe.Embora aplicativos que não capturar exceções de segurança associadas a operações protegidas (sistema autônomo o uso de arquivos, redes e assim por diante) podem causar uma exceção sem tratamento, código de segurança neutro ainda aproveita sistema autônomo tecnologias de segurança do .NET estrutura.
Uma biblioteca independente de segurança tem características especiais que você deve compreender.Suponha que sua biblioteca fornece API elementos que usam arquivos ou chamar código não gerenciado; se seu código não tiver a permissão correspondente, ele não será executado sistema autônomo descrito.No entanto, mesmo que o código tenha a permissão, qualquer código de aplicativo que chama deve ter a mesma permissão para trabalhar.Se o código de chamada não tiver a permissão certa, um SecurityException aparece sistema autônomo resultado do código de acesso segurança pilha walk.
Código de aplicativo que não é um componente reutilizável
Se seu código fizer parte de um aplicativo que não será chamado por Outros código, a segurança é simples e codificação especial não pode ser necessário.No entanto, lembre-se de que um código mal intencionado pode telefonar seu código.Enquanto a segurança de acesso do código pode parar de códigos mal-intencionados acessem recursos, esse código ainda pode ler os valores de seus campos ou propriedades que podem conter informações confidenciais.
Além disso, se seu código aceita a entrada do usuário da Internet ou de outras fontes não confiáveis, você deve ter cuidado sobre entradas mal intencionadas.
Wrapper para implementação de código nativo gerenciado
Normalmente nesse cenário, algumas funcionalidades úteis é implementada no código nativo que você deseja tornar disponível para código gerenciado.Invólucros gerenciado são fáceis de gravar usando invocação de qualquer plataforma ou interoperabilidade COM.No entanto, se você fizer isso, os chamadores de seus wrappers devem ter direitos de código não gerenciado ser bem-sucedida.Política padrão, isso significa que código baixado a partir de uma intranet ou Internet não funcionará com os wrappers.
Em vez de dar a todos os aplicativos que usam esses direitos do código não gerenciado invólucros, é melhor conceder esses direitos somente para o código de wrapper.Se a funcionalidade subjacente expõe sem recursos e a implementação é "segura" da mesma forma, o wrapper só precisa declarar seus direitos, que permite que qualquer código para chamar por ele.Quando recursos estão envolvidos, codificação de segurança deve ser o mesmo sistema autônomo a biblioteca de código csistema autônomoe descrito na próxima seção.Porque o wrapper está potencialmente expondo chamadores a esses recursos, cuidado com a verificação da segurança de código nativo é necessária e é responsabilidade do wrapper.
Código de biblioteca que expõe Protected recursos
Esta é a mais poderosa e, portanto, potencialmente perigosa (se concluído incorretamente) abordagem para a codificação de segurança: Sua biblioteca serve sistema autônomo uma interface para outros códigos para acessar determinados recursos que não são outra forma disponível, assim sistema autônomo sistema autônomo classes do .NET estrutura impor permissões para recursos que usam.Sempre que você exponha um recurso, seu código deve primeiro exigem a permissão apropriada para o recurso (ou seja, ele deve executar uma verificação de segurança) e, em seguida, normalmente declarar seus direitos para executar a operação real.