Índice:
Definição - O que significa Inseguro?
Insegura é uma palavra-chave da linguagem de programação C (C #) usada para denotar uma seção de código que não é gerenciada pelo Common Language Runtime (CLR) do .NET Framework ou código não gerenciado. Inseguro é usado na declaração de um tipo ou membro ou para especificar código de bloco. Quando usado para especificar um método, o contexto de todo o método é inseguro.
O código inseguro fornece boa interoperabilidade com interfaces de programação de aplicativos (API) não gerenciadas ou chamadas de sistema e serve como uma interface compatível para DLL (Bibliotecas de vínculo dinâmico) de terceiros, que exigem ponteiros para a passagem de parâmetros. Código inseguro também pode ser usado durante a depuração, quando o conteúdo do processo requer inspeção ou análise.
Techopedia explica inseguro
Dados inseguros referem-se a dados de memória alocados que não são controlados pelo CLR, como identificadores ou ponteiros do Windows alocados por um novo método.
Código inseguro refere-se a uma instrução ou método que acessa memória não gerenciada, incluindo:
- Chamadas para APIs do Windows
- Chamadas para componentes da interface do método COM (Component Object Model) envolvendo estruturas com ponteiros ou código crítico de desempenho.
O código não seguro é usado principalmente quando as operações envolvem ponteiros e, geralmente, quando o código é executado fora do contexto gerenciado. A compilação de código não seguro requer a especificação da opção "/ não seguro" com o comando de compilação.
Em ambientes totalmente confiáveis, o CLR é necessário para execução insegura de código. No entanto, o CLR não verifica o código não seguro. O CLR suporta código não seguro para fornecer acesso direto ao código de memória não gerenciado, que às vezes é preferido por motivos de desempenho.
Como o CLR mantém a segurança e a segurança do tipo, o C # não oferece suporte à aritmética do ponteiro no código gerenciado, diferentemente do C / C ++. A palavra-chave insegura permite o uso do ponteiro no código não gerenciado. No entanto, a segurança não é garantida porque regras estritas de acesso a objetos não são seguidas. Por exemplo, os recursos de operação do ponteiro não são fornecidos no Java Runtime Environment (JRE).
O código não seguro pode criar problemas com estabilidade e segurança, devido à sua sintaxe complexa inerente e ao potencial de erros relacionados à memória, como excesso de pilha, acesso e substituição da memória do sistema. O cuidado extra do desenvolvedor é fundamental para evitar possíveis erros ou riscos à segurança.
