WriteOnly (Visual Basic)
指定只能写入但不能读取某一属性。
注解
规则
声明上下文。 只能在模块级别使用 WriteOnly
。 这意味着 WriteOnly
属性的声明上下文必须是类、结构或模块,不能是源文件、命名空间或过程。
可将属性声明为 WriteOnly
,但不能声明为变量。
何时使用 WriteOnly
有时,你希望正在使用的代码能够设置值,但不会发现它是什么。 例如,需要保护敏感数据(例如社会登记号码或密码)不被未设置它的任何组件访问。 在这些情况下,可使用 WriteOnly
属性来设置值。
重要
定义和使用 WriteOnly
属性时,请考虑以下附加保护措施:
重写。 如果属性是类的成员,则允许它默认为 NotOverridable,并且不要将其声明为
Overridable
或MustOverride
。 这可防止派生类通过重写进行意外访问。访问级别。 如果将属性的敏感数据放在一个或多个变量中,请将其声明为 Private,以便其他代码都无法访问它们。
加密。 以加密形式而不是纯文本形式存储所有敏感数据。 如果恶意代码以某种方式获得了该内存区域的访问权限,则使用数据会更加困难。 如果需要将敏感数据序列化,加密也很有用。
重置。 当定义属性的类、结构或模块终止时,将敏感数据重置为默认值或其他无意义的值。 当释放该内存区域供常规访问时,这将提供额外的保护。
持久性。 如果可以避免,请不要保留任何敏感数据,例如在磁盘上。 此外,不要将任何敏感数据写入剪贴板。
WriteOnly
修饰符可用于以下上下文: