js设置active控件安全,弹出窗口,信任站点

时间:2021-09-09 05:13:59

  每次使用IE打开调用Activex的html时,会弹出“在此页上的activex控件和本页上的其他部分的交互可能不安全.你想允许这种交互吗?”的提示,为了去掉这个提示,花了我好几个小时。看了下面的文章终于找到了解决方法,修改注册表的“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Internet Settings/Zones/0/”下的“1201”键值为0,搞定。

通过js可对IE的安全性进行设置,此方法会遇到ActiveXObject对象不能创建的问题,原因是调用此js方法前,当前的站点必须为信任站点,解决此问题的方法可参照使用.reg文件设置ie安全性。

1.js设置ie安全性代码如下:

 

<SCRIPT LANGUAGE="JavaScript">      
<!--      
var WshShell=new ActiveXObject("WScript.Shell");      
//添加信任站点ip      
     
//添加信任站点ip
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ZoneMap//Ranges//Range100//","");
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ZoneMap//Ranges//Range100//http","2","REG_DWORD");
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ZoneMap//Ranges//Range100//:Range","192.168.1.5");
//添加信任站点ip
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ZoneMap//Ranges//Range200//","");
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ZoneMap//Ranges//Range200//http","2","REG_DWORD");
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ZoneMap//Ranges//Range200//:Range","192.168.1.11");
     
//修改IE ActiveX安全设置      
     
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//Zones//3//1001","0","REG_DWORD");      
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//Zones//3//1004","0","REG_DWORD");      
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//Zones//3//1200","0","REG_DWORD");      
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//Zones//3//1201","0","REG_DWORD");      
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//Zones//3//1405","0","REG_DWORD");      
WshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//Zones//3//2201","0","REG_DWORD");      
//禁用xinxp弹出窗口阻止程序      
     
WshShell.RegWrite("HKCU//Software//Microsoft//Internet Explorer//New Windows//PopupMgr","no");      
     
alert("active控件安全设置,弹出窗口设置,信任站点设置成功");      
//-->      
     
</SCRIPT>

 

2.各代码的具体说明见以下内容

Windows安全设置之注册表项
在IE4.0以上的版本中,IE的安全设置一般都存贮在这两个地方:
1、HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings
2、HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Internet Settings

其中第一个是所应用用户的设置,而第二个是这台计算机上IE的设置。这两个下面的子键功能相仿,在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Internet Settings下,有TemplatePolicies、ZoneMap、Zones三个子键和IE安全密切相关~~
TempLatePoliceies
TempLatePoliceies是只存在与HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Internet Settings下面的一个键值,里面包含了所有安全级别的详细设置信息。这个子键下面有high,low,Medium,MedLow四个子键,分别对应安全级别为高,低,中,默认。这四个子键下面,包含了详细的dword值。在这里,可以修改每个安全级别的详细设置,但是不可以添加或删除安全级别。
ZoneMap
ZoneMap包含我们添加的安全站点或安全IP段。在IE——IE安全选项——站点——受信任站点/受限制站点中添加站点的时候,结果就被保存在这里。当我们添加一个站点时,会在其下的Domains下面建立一个域名的子项,在这个子项下面会有一个由网络名命名的子项,里面有一个DWORD键值,键值的名称就是所用的协议~键值的内容2表示受信任,4则表示这是受限制的站点。
这下面还有两个子项,其中ProtocolDefaults表示在IE中被允许的协议类型。ranges则表示添加的受信任/限制的IP段。当IE访问一个站点的时候,如果地址中包含域名,则在Domains下寻找。包含IP则首先在Ranges下寻找安全信息。
Zones
Zones是具体设置安全信息的键值。其下面有0(我的电脑)、1(本地Internet区域)、2(收信人的站点区域)、3(Internet区域)、4(受限制的站点区域)五个子键,每个子键下面都有包含设置安全信息的DWORD值。这些DWORD值等于0(允许)、1(出现提示)或3(禁止执行),另外说明除外。
在zones下,详细的对应代码为:
值            设置
-----------------------------------------------------------------------
1001     下载已签名的 ActiveX 控件
1004     下载未签名的 ActiveX 控件
1200     运行 ActiveX 控件和插件
1201     对没有标记为安全的 ActiveX 控件进行初始化和脚本运行
1206     允许 Internet Explorer Webbrowser 控件的脚本
1400     活动脚本
1402     Java 小程序脚本
1405     对标记为可安全执行脚本的 ActiveX 控件执行脚本
1406     通过域访问数据资源
1407     允许通过脚本进行粘贴操作
1601     提交非加密表单数据
1604     字体下载
1605     运行 Java
1606     持续使用用户数据
1607     跨域浏览子框架
1608     允许 META REFRESH *
1609     显示混合内容 *
1800     桌面项目的安装
1802     拖放或复制和粘贴文件
1803     文件下载
1804     在 IFRAME 中加载程序和文件
1805     在 Web 视图中加载程序和文件
1806     加载应用程序和不安全文件
1807                 保留 **
1808                 保留 **
1809     使用弹出窗口阻止程序 **
1A00     登录
1A02     允许持续使用存储在计算机上的 Cookie
1A03     允许使用每个会话的 Cookie(未存储)
1A04     没有证书或只有一个证书时不提示选择客户证书 *
1A05     允许持续使用第三方 Cookie *
1A06     允许使用第三方会话 Cookie *
1A10     隐私设置 *
1C00     Java 权限
1E05     软件频道权限
1F00     保留 **
2000     二进制和脚本行为
2001     运行已用 Authenticode 签名的 .NET 组件
2004     运行未用 Authenticode 签名的 .NET 组件
2100     基于内容打开文件,而不是基于文件扩展名 **
2101     在低特权 Web 内容区域中的网站可以导航到此区域 **
2102     允许由脚本初始化的窗口,没有大小和位置限制 **
2200     文件下载自动提示 **
2201     ActiveX 控件自动提示 **
2300     允许网页为活动内容使用受限制的协议 **
{AEBA21FA-782A-4A90-978D-B72164C80120}   第一方 Cookie *
{A8A88C49-5EB2-4990-A1A2-0876022C854F}   第三方 Cookie *

* 表示 Internet Explorer 6 或更高版本设置
** 表示 Windows XP Service Pack 2 或更高版本设置

特殊:1200,1803,1A00,1A10,1E05,1C00
1200
1200为管理员认可插件键值,在打开该设置的时候,如果DWORD值为00010000,那么系统会检查HKEY_CURRENT_USER/Software/Policies/Microsoft/Windows/CurrentVersion/Internet Settings/AllowedControls下的认可控件列表。
1803
1803是文件下载选项,没有提示(DWORD=1),要么允许,要么不允许。
1A00
1A00可以使用下面任意值:
值              设置
---------------------------------------------------------------
0x00000000 自动使用当前用户名和密码登录
0x00010000 用户名和密码提示
0x00020000 只在 Intranet 区域自动登录
0x00030000 匿名登录

1A10
1A10是隐私设置选项,DWORD值为:00000003(禁止所有Cookie),00000001(其它),00000000(接受所有cookie),具体的设置在{A8A88C49-5EB2-4990-A1A2-0876022C854F}和{AEBA21FA-782A-4A90-978D-B72164C80120}中用16进制码来表示。
1E05
1E05为软件频道权限。有三个不同值:1(高)、2(中)、3(低)。
1C00
1C00为JAVA权限设置,有五个值可以选:
值            设置
-----------------------
00 00 00 00 禁用 Java
00 00 01 00 安全度 - 高
00 00 02 00 安全度 - 中
00 00 03 00 安全度 - 低
00 00 80 00 自定义

如果是自定义,将会生成一个{7839DA25-F5FE-11D0-883B-0080C726DCBB}的键值来用16进制码来记录。
除了我的电脑区域(0)以外,其它区域都包含CurrentLevel(区域的当前设置)、MinLevel(设置在出现警告消息钱可以使用的最低设置)和RecommendedLevel(区域的建议设置)的DWORD值。
含义如下:
值(十六进制)         设置
----------------------------------
0x00010000         安全度 - 低
0x00010500         安全度 - 中低
0x00011000         安全度 -中
0x00012000         安全度 - 高

Flags
Flags的DWORD值决定用户是否能够修改安全区域的设定。 要确定Flags的值,需要把相应设置的值加起来。可以使用以下的数值:
值              设置
------------------------------------------------------------------
1        允许更改自定义设置
2        允许用户向该区域中添加网站
4        需要经过验证的网站(https 协议)
8        包括绕过代理服务器的网站
16       包括在其他区域中没有列出的网站
32       不在 Internet 属性中显示安全区域(“我的电脑”的默认设置)
64       显示“要求服务器验证”对话框
128      将通用命名连接 (UNC) 看作 Intranet 连接 


原文链接:http://blog.csdn.net/emon123/article/details/6432499