Compartilhar via


Geração de código de segurança e em funcionamento

Algumas bibliotecas são, geração de código e executá-lo para executar algumas operações para o chamador.O problema básico é gerar código em nome de código menos confiável e executá-lo em uma relação de confiança de mais alta.O problema worsens quando o chamador pode influenciar a geração de código, portanto, você deve garantir que somente você considera seguro o código é gerado.

Você precisa saber exatamente o que o código que você está gerando todas as vezes.Isso significa que você precisa ter controles rígidos sobre quaisquer valores que você obtém de um usuário, sejam eles seqüências entre aspas (que devem haver escape para que eles não podem incluir elementos de código inesperada), identificadores (que devem ser verificados para verificar se eles são identificadores válido), ou qualquer outra coisa.Identificadores de podem ser perigosos porque um assembly compilado pode ser modificado para que seus identificadores contenham caracteres estranhos, que provavelmente quebrará-(embora isso raramente seja uma vulnerabilidade de segurança).

É recomendável que você gerar código com emissão de reflexão, que geralmente ajuda a evitar muitos desses problemas.

Ao compilar o código, considere se há alguma forma de que um programa mal-intencionado pode modificá-lo.Existe uma pequena janela de time durante o qual código mal-intencionado pode alterar código-fonte no disco antes do compilador lê-la ou antes do código carrega o arquivo .dll?Nesse caso, você deve proteger o diretório que contém esses arquivos, usando a segurança de acesso do código ou uma lista de controle de acesso no sistema de arquivos, conforme apropriado.

Se um chamador pode influenciar o código gerado de forma causa um erro de compilador, uma vulnerabilidade de segurança também pode existir lá.

Execute o código gerado com as configurações de permissão possível menores, usando PermitOnly or Negar.

Consulte também

Outros recursos

Diretrizes para Codificação Segura