Безопасность и реестр (Visual Basic)
На этой странице обсуждается, как хранение данных в реестре сказывается на безопасности.
Разрешения
Хранить секретные данные, например пароли, в реестре обычным текстом небезопасно, даже если раздел реестра защищен ACL (списком управления доступом).
Работа с реестром может привести к нарушению безопасности, допуская несанкционированный доступ к системным ресурсам или защищенной информации. Чтобы использовать эти свойства, необходимо иметь разрешения на чтение и запись в перечислении RegistryPermissionAccess, которое управляет доступом к переменным реестра. Любой код, выполняющийся с полным доверием (в рамках политики безопасности по умолчанию это любой код, установленный на локальном жестком диске компьютера пользователя), имеет необходимые разрешения для доступа к реестру. Дополнительные сведения см. в описании класса RegistryPermission.
Переменные реестра не следует хранить в областях памяти, к которым имеет доступ код без разрешений RegistryPermission. Аналогичным образом, при предоставлении разрешений следует предоставлять минимальный уровень разрешений, необходимый для выполнения задачи.
Значения разрешений на доступ к реестру определяются перечислением RegistryPermissionAccess. Его члены подробно рассмотрены в следующей таблице.
Значение | Доступ к переменным реестра |
---|---|
AllAccess |
Создание, чтение и запись |
Create |
Создание |
NoAccess |
Нет доступа |
Read |
Чтение |
Write |
Запись |
Проверка значений в разделах реестра
Создавая значение реестра, необходимо решить, что делать, если это значение уже существует. Другой процесс (возможно, вредоносный) мог уже создать это значение и получить к нему доступ. Данные, добавленные в значение реестра, становятся доступными для другого процесса. Чтобы этого избежать, используйте метод GetValue
. Он возвращает Nothing
, если данный раздел еще не существует.
Внимание
При чтении реестра из веб-приложения идентификация текущего пользователя зависит от проверки подлинности и олицетворения, реализованных в веб-приложении.