Protegendo dados de estado
Aplicativos que manipulam dados confidenciais ou tomam decisões de segurança deverão manter esses dados sob seu próprio controle e não poderão permitir que outros códigos potencialmente maliciosos acessem os dados diretamente. A melhor maneira de proteger os dados na memória é declarar os dados como variáveis privadas ou internas (com escopo limitado ao mesmo assembly). No entanto, mesmo que esses dados estejam sujeitos a acesso, você deverá estar ciente de que:
Usando mecanismos de reflexão, o código altamente confiável que poderá referenciar o objeto poderá obter e definir membros privados.
Usando a serialização, o código altamente confiável poderá obter e definir efetivamente os membros privados se puder acessar os dados correspondentes na forma serializada do objeto.
Em depuração, esses dados poderão ser lidos.
Verifique se os seus próprios métodos ou propriedades não expõem esses valores involuntariamente.