WriteOnly (Visual Basic)
Especifica que uma propriedade pode ser escrita, mas não lida.
Comentários
Regras
Contexto da declaração. Você só pode usar WriteOnly
no nível do módulo. Isso significa que o contexto de declaração de uma propriedade WriteOnly
precisa ser uma classe, uma estrutura ou um módulo, e não pode ser um arquivo de origem, namespace ou procedimento.
Você pode declarar uma propriedade como WriteOnly
, mas não como uma variável.
Quando usar WriteOnly
Às vezes, você deseja que o código de consumo seja capaz de definir um valor, mas não descobrir o que ele é. Por exemplo, dados confidenciais, como um número de registro social ou uma senha, precisam ser protegidos contra acesso por qualquer componente que não o tenha definido. Nesses casos, você pode usar uma propriedade WriteOnly
para definir o valor.
Importante
Ao definir e usar uma propriedade WriteOnly
, considere as seguintes medidas de proteção adicionais:
Substituição. Se a propriedade for membro de uma classe, permita que o padrão seja NotOverridable e não a declare
Overridable
ouMustOverride
. Isso impede que uma classe derivada crie acesso indesejado por meio de uma substituição.Nível de acesso. Se você manter os dados confidenciais da propriedade em uma ou mais variáveis, declare-os privados para que nenhum outro código possa acessá-los.
Criptografia. Armazene todos os dados confidenciais em forma criptografada em vez de em texto sem formatação. Se o código mal-intencionado de alguma forma obtém acesso a essa área de memória, é mais difícil fazer uso dos dados. A criptografia também será útil se for necessário serializar os dados confidenciais.
Redefinição. Quando a classe, a estrutura ou o módulo que define a propriedade estiver sendo encerrado, redefina os dados confidenciais para valores padrão ou para outros valores sem sentido. Isso fornece proteção extra quando essa área de memória é liberada para acesso geral.
Persistência. Não persista nenhum dado confidencial, por exemplo, no disco, se você puder evitá-los. Além disso, não escreva dados confidenciais na Área de Transferência.
O modificador WriteOnly
pode ser usado neste contexto: