如何:评估和批准表单模板

本文内容:

  • 有关评估表单模板

  • 评估表单模板时需考虑的因素

本文为 Microsoft Office SharePoint Server 2007 服务器场管理员提供有关如何评估经管理员批准的表单模板以进行审批的详细信息。请注意,本文未将要考虑的每个可能因素一一列出。根据您所在的环境,本文可能未列出其他某些注意事项。

有关评估表单模板

如果您负责审批 Office InfoPath 2007 表单模板并将其上载到使用 InfoPath Forms Services 的服务器场,那么您应该知道如何确定所审批的表单模板可能存在的问题。由于表单模板可能包含使用服务器资源或与服务器场外部数据源建立连接的功能(例如,由表单开发人员添加的托管代码),因此仔细评估表单模板可能影响服务器场性能和安全性的方式非常重要。

Office InfoPath 2007 旨在使管理员参与表单模板的审批工作。如果负责审批表单模板的管理员在审批表单模板时不够慎重,则可能导致以下后果:

  • 安全违规行为会导致网络入侵或数据丢失。

  • 对服务器场性能产生不利影响。

  • 表单模板故障导致用户数据丢失。

  • 整个 Office SharePoint Server 服务器场出现故障。

因此,在将管理员批准的每个表单模板上载到服务器场之前,应该严格评估这些表单模板。请注意,正确评估表单模板时需要了解表单模板的结构和逻辑。有关 Office InfoPath 2007 表单模板的详细信息,请参阅 InfoPath 2007 帮助和使用方法(https://go.microsoft.com/fwlink/?linkid=91423&clcid=0x804)。

评估表单模板时需考虑的因素

评估表单模板时需考虑的重要因素包括:

  • 托管代码   确立为表单模板编写代码的正确原则和最佳方案。包含托管代码的表单模板必须具有“域”安全级别或“完全信任”安全级别,并可能因此带来安全风险。确保表单模板中的代码是表单运行所必需的。如果无需使用代码即可实现所需功能,请重新设计该表单模板并将其设置为具有限制性最强的安全级别。请注意,评估表单模板中的代码可能需要具有开发人员级别的技能。

    下表提供了在评估表单模板中的代码时需考虑的一些关键因素。

  • 性能和容量规划   表单模板的设计和使用情况会显著影响服务器场的性能,因此应该在任一生产环境中对表单模板设计和使用情况进行规划。如果表单将用于向服务器场提交数据,请确保具有足够的服务器场容量来存储这些数据,否则可能会导致用户数据丢失。有关详细信息,请参阅性能和容量规划 (Office SharePoint Server)

  • 验证表单模板   在上载表单模板之前,请单击管理中心网站“上载表单模板”页上的“验证”按钮。如果您没有手动验证表单模板,则会在上载期间自动对其进行验证。但是,手动验证将同时返回消息和错误,而自动验证只返回错误(如果存在)。有关验证和上载表单模板的详细信息,请参阅部署管理员批准的表单模板 (Office SharePoint Server)

  • 身份验证   如果使用 NTLM 身份验证,请注意 NTLM 只能对客户端计算机进行身份验证。如果必须将身份验证令牌传递到第三方资源(例如当表单调用的 Web 服务必须将数据提交到数据库时),则 NTLM 对第三方资源的身份验证将失败。在这种情况下,请考虑使用另一种身份验证方法(例如可传递身份验证令牌的 Kerberos 身份验证)。表单模板应尽可能使用集中管理的数据连接存储中的数据连接文件来与外部数据源建立连接。有关数据连接的详细信息,请参阅下文中的“数据连接”。

  • 安全级别   确保表单模板的安全级别适合表单的用途。例如,不应将不使用需要域身份验证的数据连接、不包含托管代码或者不从其他域中的资源请求数据的表单模板配置为具有“完全信任”安全级别。有关详细信息,请参阅 InfoPath 表单的安全级别(https://go.microsoft.com/fwlink/?linkid=91447&clcid=0x804)。

  • 密码   确保表单模板中的密码和其他身份验证信息不是硬编码的。用户应在填写表单时或使用经验证的数据连接对需要进行身份验证的表单模板中的任何功能进行验证。此外,不应将密码存储在表单模板的数据源中,也不应以纯文本格式提交这些密码。

  • 权限   表单模板作者应通过向表单用户分配只读权限、向表单维护人员分配写权限以及不向其他任何人分配任何访问权限,来限制对生产表单模板的访问。即使通过登录脚本将表单模板安装到用户计算机上,您仍可以控制对 .xsn 文件的访问权限(如果该用户没有以管理员身份运行)。可以通过向用户授予对该模板文件的只读访问权限来实现此目的。

  • 敏感数据   Office InfoPath 2007 表单模板是一些纯文本格式的 XML 文档,并且不应包含您不想让用户看到的任何数据。通过使用记事本或任何其他文本编辑器,避开任何身份验证逻辑,具有读取权限的恶意用户可以读取 Office InfoPath 2007 XML 表单的内容。

  • 业务逻辑   Office InfoPath 2007 使用表单模板来存储所有表单逻辑。由于用户必须具有表单模板的访问权限才能打开基于该表单模板的任何表单,因此他们可能修改表单模板以避开作者实施的任何限制。这意味着在客户端执行身份验证和授权并不安全。为安全起见,必须在服务器端执行计算和数据验证。

    下面的示例演示如何将表单模板设计为使用服务器端计算和身份验证。

    • 不要在 XML 文件中存储敏感数据,应在 XML 文件中存储密钥,并使用数据库连接或 Web 服务来执行填充其余数据的查询。如果用户未经授权,则返回空数据集。您可以在客户端上检测此类情形,并在用户无权查看表单数据时显示一条友好的错误消息。

    • 提交时,将数据发送到 Web 服务并在服务器端执行所有可能的验证。例如,如果在未指定审批者的情况下员工不会提交超过 100 美元的费用报表,则让 Web 服务处理数据集并验证是否在提交数据之前就已存在这种情况。

  • 数据连接   尽可能确保表单模板作者使用集中管理的数据连接存储中存储的数据连接文件的数据连接设置来通过表单模板与外部资源建立连接。使用集中管理的数据连接文件具有下列优点:

    • 多个表单可以使用相同的数据连接文件,因此您不需要为每个表单重新创建数据连接。

    • 如果外部数据源的位置或连接设置发生变化,则只需更新数据连接文件,而不必更新每个表单模板。

    • 数据连接文件可以包含其他身份验证信息,在用户通过浏览器填写表单时服务器可以使用这些信息。

    • 如果在浏览器中填写的、不具有“完全信任”安全级别的表单中的所有数据连接使用数据连接文件,则这些表单可以连接到其他域中的计算机。有关详细信息,请参阅数据连接简介(https://go.microsoft.com/fwlink/?linkid=91449&clcid=0x804)。

  • 外部相关性   表单模板可以使用外部资源(如数据连接、Web 服务、数据库和文档库)。确保所有外部资源均有效并在表单模板可供使用之前提供这些资源。

  • 信息权限管理   信息权限管理 (IRM) 不能用于保护启用了浏览器的表单模板。

另请参见

其他资源

表单模板和表单的安全注意事项
InfoPath 表单的安全级别
InfoPath 2007 帮助和使用方法
数据连接简介
为表单模板设置必需的安全级别
安全编码指南
FxCop 团队页面(该链接可能指向英文页面)
如何:使用强名称为程序集签名