什么是工作站执行控制列表(ECL)
什么是工作站执行控制列表(ECL)
环境
产品:Lotus Domino
平台:PC
版本: R4.x, R5.x
问题
什么是工作站执行控制列表(ECL)
解答
工作站执行控制列表的功能是保护用户的数据文件免受其它外部应用的侵袭,它提供了这样一种机制,管理这些外部应用是否能被执行以及它们被允许的访问权限.
工作站执行控制列表是基于每个用户的工作站的,用户可以非常详细地控制每个方面.例如,用户可以约定如果一个文档是被某些可信任的同事签名的,则该文档内部的可执行程序代码可以访问文档和数据库,修改环境变量;但不能访问文件系统和外部程序.
工作站执行控制列表使用数字签名来验证可执行代码.当企图执行代码时,Notes验证代码上的数字签名,然后查看用户的工作站执行控制列表设置来决定是否该操作
能被执行或是否应该提示用户.如果在工作站执行控制列表中找到了代码的签名者(或匹配的项目),并且启用了相关的功能,则该代码就可以被执行.如果没有找到,或找到了但没有启用相关的功能,则会提示用户一个对话框显示将被执行的操作,它由谁来签名,以及当前的工作站执行控制列表设置不允许执行该操作.这时用户有下面这些选项:<禁止>,<执行一次>,<信任签名者>.如果代码没有被签名,则"未签名者"项目将被用于决定允许的权利.
注意:从R4.5版本开始,可执行代码(存储于表单,按钮,操作按钮,代理等)被创建者/最后修改者签名,R4.5版本以前的代码不包含签名.
(一)以R5为例,介绍工作站执行控制列表中的选项及其功能
1)工作站访问选项
设置工作站 ECL 时,请从以下选项中选择:
存取级别选项 允许公式和代码
访问文件系统 附加、拆离、读取和写入工作站文件
访问当前数据库 读取和修改当前的数据库
访问环境变量 使用 @SetEnvironment 和 @GetEnvironment 变 量和 LotusScript 方法访问 NOTES.INI 文件
访问非 Notes 数据库 当 @DBLookup、@DBColumn 和 @DBCommand 等 @function 的第一个参数是另一个应用程序的 数据库驱动程序时,使用 @DBLookup、 @DBColumn 和 @DBCommand 访问数据库
访问外部代码 运行 Notes 未知的 LotusScript 类和 DLL
访问外部程序 访问其他应用程序,包括激活任何 OLE 对象
发送邮件 使用诸如 @MailSend 的函数来发送邮件
读取其他数据库 读取数据库(除当前数据库除外)中的信息
修改其他数据库 修改数据库(除当前数据库除外)中的信息
引出数据 打印、拷贝到剪贴板、引入和引出数据
访问工作站安全 ECL 修改 ECL
2)Java 小程序选项
在 Notes 中运行 Java 小程序时,将在该小程序上施加某些安全性限制。有时把这种安全性限制称为“Java 安全性沙箱”。这种安全性模式通过确定小程序可以执行的操作以及它能够访问的系统资源来防止受到恶意代码的损害。这些限制可在每个签名的基础上通过启用如下所示的复选框来定制。
存取权限选项 允许小程序进行
访问文件系统 读写本地文件系统上的文件
访问 Notes Java 类 装载并调用 Domino 后端对象类
访问网络地址 在授权端口(0 到 1024 范围以外的端口) 上绑定并接受连接并与其他服务器建立连接
打印 提交打印作业
访问系统属性 读取诸如颜色设置和环境变量的系统属性
访问对话框和剪贴板 访问系统剪贴板并确定是否在顶层窗口显示 “安全性标志”。安全性标志是视觉提示( 通常是类似于 “Java 小程序窗口”的消息 ),指明此窗口是由 Java 小程序创建的 。进行此操作以确保用户不会在无意间输 入与安全性有关的信息,如在伪装成口令 对话框的对话框中输入口令。启用此复选 框将使安全性标志不会显示。
进程级访问 创建线程和线程组、派生并执行外部进程 、装载并链接外部库、使用 Java 核心映 象访问类的非公共成员以及访问 AWT 事件 队列
3)JavaScript 选项
JavaScript 执行控制列表选项控制在 Notes 客户机中(无论是在 Notes 表单上还是在 Notes 浏览器显示的 Web 页面上)执行的 JavaScript 的安全性。这些选项不能控制其它浏览器执行的 JavaScript,包括 Microsoft Internet Explorer 浏览器,即使它们嵌入 Notes 客户机中也不行。
读取和写入选项(分别在常规类别“允许读取数据从”和“允许写入数据到”下)控制 JavaScript 是否可以读取或修改“窗口”对象的 JavaScript 属性。“窗口”对象是 JavaScript 文档对象模型中的最顶层对象。它拥有应用于整个窗口的属性。保护对“窗口”对象的访问可保护对页面上其他对象的访问,因为 JavaScript 程序不能在没有首先通过“窗口”对象的情况下访问对象模型中较低层的对象。
可以分别控制“窗口”对象的三个不同类的读取和写入选项的安全性:
“窗口”对象类 描述
源窗口 控制 JavaScript 访问 JavaScript 代码同一 页面上的“窗口”对象。通常这是安全性很低 的线程。选择此选项不会阻止 JavaScript 直 接调用源窗口上的对象。此操作可绕过“窗口 ”对象,因此不强制此执行控制列表选项。
缺省为允许读取和写入访问。
同一主机的其他窗口 控制 JavaScript 访问非 JavaScript 代码页 面(但该页与 JavaScript 代码页使用相同的 主机)上的“窗口”对象。例如, http://www.lotus.com/ 中一个页面上的 JavaScript 代码可以访问 http://www.lotus.com/ 中另一个页面 上的“窗口”对象。如果两个页在同一帧结构 集中,此选项允许两个页面交互作用。这是安 全性稍高的线程。
缺省为允许读取和写入访问。
不同主机的其他窗口 除允许访问使用不同主机的帧结构集内不同页 面上的“窗口”对象外,与“同一主机的其他 窗口”相似。例如,http://www.lotus.com/ 页面上的 JavaScript 代码可以访问任何其他服务器上 的“窗口”对象。这是最高的安全性线程,因 为其他人有可能设计一个帧结构集,其中包含 执行恶意操作的页(如访问同一帧结构集中您 “信任”的另一页中的数据,而该页中有您输 入的口令或其他一些敏感信息)。
缺省为不允许读取和写入访问。
4)有两个附加执行控制列表选项可以控制是否授权在 Notes 客户机中执行的 JavaScript 打开新的 Web 页面或 Notes 文档。
下面是“允许打开”类别中可用的选项:
选项 描述
同一主机的 URL 控制访问以打开与 JavaScript 代码相同主机上的 页面或 Notes 文档。
缺省为允许开放式访问。
不同主机的 URL 控制访问以打开与 JavaScript 代码不同主机上的 页面或 Notes 文档。
缺省为不允许开放式访问。
(二)推荐的初始”ECL"设置
名称
允许的访问
缺省
访问当前数据库,访问环境变量,读取其它数据库,访问非Notes 数据库
没签名
访问当前数据库,访问环境变量,读取其它数据库,访问非Notes 数据库
Lotus Notes Template Development/Lotus Notes
所有访问类型
*/您自己的组织
所有访问类型
环境
产品:Lotus Domino
平台:PC
版本: R4.x, R5.x
问题
什么是工作站执行控制列表(ECL)
解答
工作站执行控制列表的功能是保护用户的数据文件免受其它外部应用的侵袭,它提供了这样一种机制,管理这些外部应用是否能被执行以及它们被允许的访问权限.
工作站执行控制列表是基于每个用户的工作站的,用户可以非常详细地控制每个方面.例如,用户可以约定如果一个文档是被某些可信任的同事签名的,则该文档内部的可执行程序代码可以访问文档和数据库,修改环境变量;但不能访问文件系统和外部程序.
工作站执行控制列表使用数字签名来验证可执行代码.当企图执行代码时,Notes验证代码上的数字签名,然后查看用户的工作站执行控制列表设置来决定是否该操作
能被执行或是否应该提示用户.如果在工作站执行控制列表中找到了代码的签名者(或匹配的项目),并且启用了相关的功能,则该代码就可以被执行.如果没有找到,或找到了但没有启用相关的功能,则会提示用户一个对话框显示将被执行的操作,它由谁来签名,以及当前的工作站执行控制列表设置不允许执行该操作.这时用户有下面这些选项:<禁止>,<执行一次>,<信任签名者>.如果代码没有被签名,则"未签名者"项目将被用于决定允许的权利.
注意:从R4.5版本开始,可执行代码(存储于表单,按钮,操作按钮,代理等)被创建者/最后修改者签名,R4.5版本以前的代码不包含签名.
(一)以R5为例,介绍工作站执行控制列表中的选项及其功能
1)工作站访问选项
设置工作站 ECL 时,请从以下选项中选择:
存取级别选项 允许公式和代码
访问文件系统 附加、拆离、读取和写入工作站文件
访问当前数据库 读取和修改当前的数据库
访问环境变量 使用 @SetEnvironment 和 @GetEnvironment 变 量和 LotusScript 方法访问 NOTES.INI 文件
访问非 Notes 数据库 当 @DBLookup、@DBColumn 和 @DBCommand 等 @function 的第一个参数是另一个应用程序的 数据库驱动程序时,使用 @DBLookup、 @DBColumn 和 @DBCommand 访问数据库
访问外部代码 运行 Notes 未知的 LotusScript 类和 DLL
访问外部程序 访问其他应用程序,包括激活任何 OLE 对象
发送邮件 使用诸如 @MailSend 的函数来发送邮件
读取其他数据库 读取数据库(除当前数据库除外)中的信息
修改其他数据库 修改数据库(除当前数据库除外)中的信息
引出数据 打印、拷贝到剪贴板、引入和引出数据
访问工作站安全 ECL 修改 ECL
2)Java 小程序选项
在 Notes 中运行 Java 小程序时,将在该小程序上施加某些安全性限制。有时把这种安全性限制称为“Java 安全性沙箱”。这种安全性模式通过确定小程序可以执行的操作以及它能够访问的系统资源来防止受到恶意代码的损害。这些限制可在每个签名的基础上通过启用如下所示的复选框来定制。
存取权限选项 允许小程序进行
访问文件系统 读写本地文件系统上的文件
访问 Notes Java 类 装载并调用 Domino 后端对象类
访问网络地址 在授权端口(0 到 1024 范围以外的端口) 上绑定并接受连接并与其他服务器建立连接
打印 提交打印作业
访问系统属性 读取诸如颜色设置和环境变量的系统属性
访问对话框和剪贴板 访问系统剪贴板并确定是否在顶层窗口显示 “安全性标志”。安全性标志是视觉提示( 通常是类似于 “Java 小程序窗口”的消息 ),指明此窗口是由 Java 小程序创建的 。进行此操作以确保用户不会在无意间输 入与安全性有关的信息,如在伪装成口令 对话框的对话框中输入口令。启用此复选 框将使安全性标志不会显示。
进程级访问 创建线程和线程组、派生并执行外部进程 、装载并链接外部库、使用 Java 核心映 象访问类的非公共成员以及访问 AWT 事件 队列
3)JavaScript 选项
JavaScript 执行控制列表选项控制在 Notes 客户机中(无论是在 Notes 表单上还是在 Notes 浏览器显示的 Web 页面上)执行的 JavaScript 的安全性。这些选项不能控制其它浏览器执行的 JavaScript,包括 Microsoft Internet Explorer 浏览器,即使它们嵌入 Notes 客户机中也不行。
读取和写入选项(分别在常规类别“允许读取数据从”和“允许写入数据到”下)控制 JavaScript 是否可以读取或修改“窗口”对象的 JavaScript 属性。“窗口”对象是 JavaScript 文档对象模型中的最顶层对象。它拥有应用于整个窗口的属性。保护对“窗口”对象的访问可保护对页面上其他对象的访问,因为 JavaScript 程序不能在没有首先通过“窗口”对象的情况下访问对象模型中较低层的对象。
可以分别控制“窗口”对象的三个不同类的读取和写入选项的安全性:
“窗口”对象类 描述
源窗口 控制 JavaScript 访问 JavaScript 代码同一 页面上的“窗口”对象。通常这是安全性很低 的线程。选择此选项不会阻止 JavaScript 直 接调用源窗口上的对象。此操作可绕过“窗口 ”对象,因此不强制此执行控制列表选项。
缺省为允许读取和写入访问。
同一主机的其他窗口 控制 JavaScript 访问非 JavaScript 代码页 面(但该页与 JavaScript 代码页使用相同的 主机)上的“窗口”对象。例如, http://www.lotus.com/ 中一个页面上的 JavaScript 代码可以访问 http://www.lotus.com/ 中另一个页面 上的“窗口”对象。如果两个页在同一帧结构 集中,此选项允许两个页面交互作用。这是安 全性稍高的线程。
缺省为允许读取和写入访问。
不同主机的其他窗口 除允许访问使用不同主机的帧结构集内不同页 面上的“窗口”对象外,与“同一主机的其他 窗口”相似。例如,http://www.lotus.com/ 页面上的 JavaScript 代码可以访问任何其他服务器上 的“窗口”对象。这是最高的安全性线程,因 为其他人有可能设计一个帧结构集,其中包含 执行恶意操作的页(如访问同一帧结构集中您 “信任”的另一页中的数据,而该页中有您输 入的口令或其他一些敏感信息)。
缺省为不允许读取和写入访问。
4)有两个附加执行控制列表选项可以控制是否授权在 Notes 客户机中执行的 JavaScript 打开新的 Web 页面或 Notes 文档。
下面是“允许打开”类别中可用的选项:
选项 描述
同一主机的 URL 控制访问以打开与 JavaScript 代码相同主机上的 页面或 Notes 文档。
缺省为允许开放式访问。
不同主机的 URL 控制访问以打开与 JavaScript 代码不同主机上的 页面或 Notes 文档。
缺省为不允许开放式访问。
(二)推荐的初始”ECL"设置
名称
允许的访问
缺省
访问当前数据库,访问环境变量,读取其它数据库,访问非Notes 数据库
没签名
访问当前数据库,访问环境变量,读取其它数据库,访问非Notes 数据库
Lotus Notes Template Development/Lotus Notes
所有访问类型
*/您自己的组织
所有访问类型