WriteOnly (Visual Basic)
Określa, że właściwość może być zapisywana, ale nie odczytywana.
Uwagi
Reguły
Kontekst deklaracji. Można używać WriteOnly
tylko na poziomie modułu. Oznacza to, że kontekst deklaracji dla WriteOnly
właściwości musi być klasą, strukturą lub modułem i nie może być plikiem źródłowym, przestrzenią nazw lub procedurą.
Właściwość można zadeklarować jako WriteOnly
, ale nie zmienną.
Kiedy używać funkcji WriteOnly
Czasami chcesz, aby kod zużywany mógł ustawić wartość, ale nie odnajduje tego, co to jest. Na przykład poufne dane, takie jak numer rejestracji społecznościowej lub hasło, muszą być chronione przed dostępem przez dowolny składnik, który go nie ustawił. W takich przypadkach można użyć WriteOnly
właściwości , aby ustawić wartość.
Ważne
Podczas definiowania i używania WriteOnly
właściwości należy wziąć pod uwagę następujące dodatkowe środki ochronne:
Zastępowanie. Jeśli właściwość jest elementem członkowskim klasy, zezwól jej na wartość domyślną NotOverridable i nie deklaruj jej
Overridable
aniMustOverride
. Zapobiega to dokonaniu niepożądanego dostępu przez klasę pochodną za pośrednictwem przesłonięcia.Poziom dostępu. Jeśli przechowujesz poufne dane właściwości w co najmniej jednej zmiennej, zadeklaruj je jako prywatne , aby żaden inny kod nie mógł uzyskać do nich dostępu.
Szyfrowanie. Przechowuj wszystkie poufne dane w postaci zaszyfrowanej, a nie w postaci zwykłego tekstu. Jeśli złośliwy kod w jakiś sposób uzyska dostęp do tego obszaru pamięci, trudniej jest korzystać z danych. Szyfrowanie jest również przydatne, jeśli konieczne jest serializowanie poufnych danych.
Resetowanie. Po zakończeniu definiowania właściwości przez klasę, strukturę lub moduł zresetuj poufne dane do wartości domyślnych lub innych wartości bez znaczenia. Zapewnia to dodatkową ochronę w przypadku zwolnienia tego obszaru pamięci w celu uzyskania ogólnego dostępu.
Stan trwały. Nie utrwalaj żadnych poufnych danych, na przykład na dysku, jeśli można ich uniknąć. Ponadto nie zapisuj żadnych poufnych danych do Schowka.
Modyfikator WriteOnly
może być używany w tym kontekście: