WriteOnly

Обновлен: Ноябрь 2007

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

Заметки

Правила

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

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

Использование WriteOnly

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

25dey2kc.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

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

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

  • Уровень доступа. Если важные данные свойства хранятся в одной или нескольких переменных, объявите их Private (Visual Basic), чтобы другой код не имел к ним доступа.

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

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

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

Модификатор WriteOnly можно использовать в следующем контексте.

Оператор Property

См. также

Ссылки

ReadOnly (Visual Basic)

Private (Visual Basic)

Ключевые слова языка Visual Basic