Lotus notes 用户编辑Lotus Notes文档中任何字段的风险

Lotus notes 用户编辑Lotus Notes文档中任何字段的风险,lotus-notes,Lotus Notes,在lotusnotes中设计表单时,我一直假设,如果用户没有designer(或manager)访问权限,他们只能通过我提供的表单与文档交互 这意味着,例如,我可以为状态设置一个不可编辑的字段,并且知道只有通过与表单交互(即遵循工作流),状态才能更改,还可以知道必须遵循的步骤以及审计跟踪中记录的所有操作(修改/操作列表) 然而,我的想法被颠覆了 非设计人员/非管理人员能够更改文档中的任何字段(隐藏或不隐藏)会产生什么后果 如果这是一个问题,我将如何保存状态字段或类似字段,以确保它不会短路到“已

在lotusnotes中设计表单时,我一直假设,如果用户没有designer(或manager)访问权限,他们只能通过我提供的表单与文档交互

这意味着,例如,我可以为状态设置一个不可编辑的字段,并且知道只有通过与表单交互(即遵循工作流),状态才能更改,还可以知道必须遵循的步骤以及审计跟踪中记录的所有操作(修改/操作列表)

然而,我的想法被颠覆了

  • 非设计人员/非管理人员能够更改文档中的任何字段(隐藏或不隐藏)会产生什么后果
  • 如果这是一个问题,我将如何保存状态字段或类似字段,以确保它不会短路到“已批准”?类似地,如何阻止用户手动编辑操作历史记录

这非常有效: 防止编辑现有文档

您可以阻止在数据库ACL中具有作者访问权限的用户编辑现有文档中的字段。此限制不适用于新文档

打开表单。 创建字段,或单击现有字段。 在“字段属性”框中,单击“高级”选项卡。 选择“安全选项:必须至少具有编辑器访问权限才能使用”,然后单击复选标记。

这非常有效: 防止编辑现有文档

您可以阻止在数据库ACL中具有作者访问权限的用户编辑现有文档中的字段。此限制不适用于新文档

打开表单。 创建字段,或单击现有字段。 在“字段属性”框中,单击“高级”选项卡。
选择“安全选项:必须至少具有编辑器访问权限才能使用”,然后单击复选标记。

任何普通用户都可以在诸如您链接的工具的帮助下,读取和更改表单设计中隐藏或不可编辑的字段。这是因为这些特性不是安全特性。但是,您可以隐藏数据库的设计,这使得使用一点Notes编程来访问应用程序字段变得更加困难。缺点是隐藏设计使维护应用程序变得更加困难


或者您可以使用Notes和Domino-ACL、ReaderNames和Authornames的真正安全特性。这些允许您将数据字段分隔为单独的文档,甚至是单独的数据库,其中只有特定的人有权设置、修改或删除文档。您可以使用不可编辑的主控文档从这些单独控制的文档中提取值,并使用单独的编辑按钮启动对话框来编辑安全部分。

任何普通用户都可以在诸如您链接的工具的帮助下,读取和更改表单设计中隐藏或不可编辑的字段。这是因为这些特性不是安全特性。但是,您可以隐藏数据库的设计,这使得使用一点Notes编程来访问应用程序字段变得更加困难。缺点是隐藏设计使维护应用程序变得更加困难


或者您可以使用Notes和Domino-ACL、ReaderNames和Authornames的真正安全特性。这些允许您将数据字段分隔为单独的文档,甚至是单独的数据库,其中只有特定的人有权设置、修改或删除文档。您可以使用不可编辑的主控文档从这些单独控制的文档中提取值,并使用单独的编辑按钮启动对话框来编辑受保护的部分。

用户(保存文档时)如何通过我提供的操作按钮添加到修改历史或更改表单状态?你需要一个代理作为编辑来完成这项工作吗?即,用户呼叫代理,代理进行相关检查,然后更新文档?感觉有点过头了。我在工作流引擎中使用了这个概念。用户具有文档的作者访问权限,并且无法更新工作流字段。工作流操作完成后,将触发一个代理(如上所述)。此代理具有编辑器访问权限并更新字段。可能有点过火,但这是我保证状态由工作流更新的唯一方法。如果这是确保工作流字段完整性的唯一方法,那么这不是过火,我只是认为Notes会处理得更好,因为它的优势之一是作为工作流管理器。再次感谢。用户(保存文档时)如何通过我提供的操作按钮添加到表单的修改历史记录或更改状态?你需要一个代理作为编辑来完成这项工作吗?即,用户呼叫代理,代理进行相关检查,然后更新文档?感觉有点过头了。我在工作流引擎中使用了这个概念。用户具有文档的作者访问权限,并且无法更新工作流字段。工作流操作完成后,将触发一个代理(如上所述)。此代理具有编辑器访问权限并更新字段。可能有点过火,但这是我保证状态由工作流更新的唯一方法。如果这是确保工作流字段完整性的唯一方法,那么这不是过火,我只是认为Notes会处理得更好,因为它的优势之一是作为工作流管理器。再次感谢。