安全性和注册表(Visual Basic)

本页讨论在注册表中存储数据的安全影响。

权限

在注册表中存储机密(如密码)为明文格式是不安全的,即使注册表项受到 ACL(访问控制列表)的保护。

使用注册表可能会通过允许对系统资源或受保护信息进行不当访问来损害安全性。 若要使用这些属性,必须具备来自 RegistryPermissionAccess 枚举的读取和写入权限,该枚举控制对注册表变量的访问。 任何完全信任运行的代码(在默认安全策略下,这是安装在用户本地硬盘上的任何代码)都具有访问注册表所需的权限。 有关详细信息,请参阅 RegistryPermission 类。

不应将注册表变量存储在某些内存位置,在这些位置,不具有 RegistryPermission 的代码可访问这些变量。 同样,在授予权限时,授予完成作业所需的最低权限。

注册表权限访问值由 RegistryPermissionAccess 枚举定义。 下表详细介绍了其成员。

价值 访问注册表变量
AllAccess 创建、读取和写入
Create 创建
NoAccess 无访问权限
Read 读取
Write 写入

检查注册表项中的值

创建注册表值时,需要确定该值已存在时要执行的操作。 另一个进程(可能是恶意进程)可能已经创建了该值并有权访问它。 将数据放入注册表值时,数据可用于其他进程。 若要防止出现这种情况,请使用 GetValue 该方法。 如果键尚不存在,则返回 Nothing

重要

从 Web 应用程序读取注册表时,当前用户的标识取决于在 Web 应用程序中实现的身份验证和模拟。

另请参阅