Internet安全选项注册表

来源:互联网 发布:辛辛那提音乐学院知乎 编辑:程序博客网 时间:2024/06/05 20:01

Internet Explorer 安全区域设置存储在以下注册表子项下面:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
这些注册表项包含以下项:
  • TemplatePolicies
  • ZoneMap
  • Zones
注意:默认情况下,安全区域设置存储在HKEY_CURRENT_USER
注册表项子树中。因为该子树是为每个用户动态加载的,所以一个用户的设置不会影响另一个用户的设置。

TemplatePolicies

项确定默认安全区域级别的设置。这些级别包括中低。可以更改默认设置中的安全级别设置。但是,不能添加更多安全级别。项中包含的值决定了安全区域的设置。每项均包含一个描述字符串值和一个显示名称字符串值,它们决定了每个安全级别的安全选项卡上显示的文本。

ZoneMap

ZoneMap
项包含以下项:
  • Domains
  • EscDomains
  • ProtocolDefaults
  • Ranges
Domains 项包含为更改其默认行为而添加的域和协议。在添加域的同时,还会为Domains项添加一个项。子域作为项出现在它们所属的域下面。列出域的每个项都包含一个 DWORD 值,其中含有受影响协议的值名称。DWORD 值与域添加到的安全区域的数值相同。

EscDomains项与Domains项类似,只是EscDomains项适用于那些受增强的安全配置 (ESC) 影响的协议。ESC 是在 Microsoft Windows Server 2003 中引入的。

ProtocolDefaults 项指定用于特定协议(ftp、http、https)的默认安全区域。若要更改默认设置,可单击“安全”选项卡上的“添加站点”将协议添加到安全区域中,或者在Domains项下面添加一个 DWORD 值。DWORD 值的名称必须与协议名称匹配,而且不能包含任何冒号 (:) 或斜杠 (/)。

ProtocolDefaults
项还包含指定使用协议的默认安全区域的 DWORD 值。无法使用“安全”选项卡上的控件来更改这些值。如果特定 Web 站点没有在安全区域中,请使用该设置。

Ranges项包含 TCP/IP 地址的范围。指定的每个 TCP/IP 范围出现在一个任意命名的项中。该项包含一个 :Range 字符串值,其中包含指定的 TCP/IP 范围。对于每个协议,都会添加一个 DWORD 值,它包含指定 IP 范围的安全区域的数值。

当 Urlmon.dll 文件使用 MapUrlToZone 公共函数将特定 URL 解析为安全区域时,它使用以下方法之一:
  • 如果 URL 包含完全限定的域名 (FQDN),则处理
    Domains
    项。

    在此方法中,精确的站点匹配取代随机匹配。
  • 如果 URL 包含 IP 地址,则处理
    Ranges
    项。将 URL 的 IP 地址与 :Range 值进行比较,该值包含在 Ranges 项下面的任意命名的项中。

    注意:由于任意命名的项按添加到注册表中的顺序进行处理,因此,此方法在找到精确匹配前可能会找到随机匹配。如果此方法首先找到了一个随机匹配,则可能在另一个安全区域中执行 URL,而不是在其通常被分配到的那个安全区域中执行。 这种现象是设计使然。

Zones

包含表示为计算机定义的每个安全区域的项。默认情况下,定义以下 5 个区域(编号从 0 到 4):
值    设置   ------------------------------0        我的电脑1        本地 Intranet 区域2        受信任的站点区域3        Internet 区域4        受限制的站点区域
注意:默认情况下,“我的电脑”不会出现在“安全”选项卡的“区域”框中。

其中的每项都包含以下 DWORD 值,用于表示自定义“安全”选项卡上的相应设置。

注意:除非另外声明,否则每个 DWORD 值等于 0、1 或 3。通常,设置为 0 则将具体操作设置为允许;设置为 1 则导致出现提示;设置为 3 则禁止执行具体操作。

关于 1200、1A00、1A10、1E05、1C00 和 2000 的说明

以下两个注册表项影响是否可以在特定区域中运行 ActiveX 控件:
  • 1200 此注册表项影响是否可以运行 ActiveX 控件或插件。
  • 2000 此注册表项控制 ActiveX 控件或插件的二进制行为和脚本行为。、
以下为实现判断internet部分功能安全级别的代码:
RegistryKey internet_zones = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3", true);//获取指定路径下的键 修改权限RegistryKey local_internet = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1", true);//获取指定路径下的键 修改权限            try            {               //0启用 1提示 3禁用   对没有标记为安全的 ActiveX 控件进行初始化和脚本运行                  local_internet.SetValue("1201", 0);              //0启用 1提示 3禁用   ActiveX 控件自动提示                  local_internet.SetValue("2201", 0);              //0启用 1提示 3禁用   下载未签名的 ActiveX 控件                local_internet.SetValue("1004", 0);              //0启用 1提示 3禁用  运行 ActiveX 控件和插件                  local_internet.SetValue("1200", 0);              //0启用 1提示 3禁用   对标记为可安全执行脚本的 ActiveX 控件执行脚本                local_internet.SetValue("1405", 0);                             //0启用 1提示 3禁用    下载已签名的 ActiveX 控件                local_internet.SetValue("1001", 0);if (internet_zones.GetValue("1201").Equals(0) && (local_internet.GetValue("1201").Equals(0)))  //判断某项的安全级别            }              catch (Exception E)            {                MessageBox.Show(E.Message.ToString());            }   





原创粉丝点击