WriteOnly (Visual Basic)

Указывает, что свойство может быть записано, но не считывается.

Замечания

Правила

Контекст объявления. WriteOnly можно использовать только на уровне модуля. Это означает, что контекст объявления для WriteOnly свойства должен быть классом, структурой или модулем и не может быть исходным файлом, пространством имен или процедурой.

Свойство можно объявить WriteOnlyкак, но не переменную.

Когда следует использовать WriteOnly

Иногда требуется, чтобы потребляемый код мог задать значение, но не обнаруживать, что это такое. Например, конфиденциальные данные, такие как номер социальной регистрации или пароль, должны быть защищены от доступа любым компонентом, который не задал его. В этих случаях можно использовать WriteOnly свойство для задания значения.

Внимание

При определении и использовании WriteOnly свойства рассмотрите следующие дополнительные защитные меры:

  • Переопределение. Если свойство является членом класса, разрешить ему по умолчанию NotOverridable и не объявлять его Overridable или MustOverride. Это предотвращает получение производного класса от нежелательного доступа через переопределение.

  • Уровень доступа. Если конфиденциальные данные свойства хранятся в одной или нескольких переменных, объявите их закрытыми , чтобы другой код не смог получить к ним доступ.

  • Шифрование Храните все конфиденциальные данные в зашифрованной форме, а не в виде обычного текста. Если вредоносный код каким-то образом получает доступ к этой области памяти, труднее использовать данные. Шифрование также полезно, если необходимо сериализовать конфиденциальные данные.

  • Сброс. Когда класс, структура или модуль, определяющий свойство, завершается, сбрасывайте конфиденциальные данные в значения по умолчанию или другие бессмысленные значения. Это обеспечивает дополнительную защиту, если эта область памяти освобождается для общего доступа.

  • Постоянство. Не сохраняйте конфиденциальные данные, например на диске, если это можно избежать. Кроме того, не записывайте конфиденциальные данные в буфер обмена.

Модификатор WriteOnly можно использовать в этом контексте:

Оператор Property

См. также