允许自定义脚本的安全注意事项

允许用户通过插入脚本在 SharePoint 中自定义网站和页面可以灵活地满足组织中的不同需求。 但是,应注意自定义脚本的安全影响。

允许用户运行自定义脚本时,你不再可以强制实施治理、限定插入代码的功能范围、阻止代码的特定部分或阻止已部署的所有自定义代码。 建议使用 SharePoint 框架,而不是允许自定义脚本。 有关详细信息,请参阅 自定义脚本的替代项

自定义脚本可以执行的操作

在 SharePoint 页面中运行的每个脚本 (无论是文档库中的 HTML 页面还是脚本编辑器 Web 部件中的 JavaScript) 始终在访问页面和 SharePoint 应用程序的上下文中运行。 这意味着:

  • 脚本有权访问用户有权访问的所有内容。

  • 脚本可以通过 Microsoft Graph 集成访问多个 Microsoft 365 服务甚至更多服务的内容。

无法审核脚本的插入

作为 SharePoint或以上管理员,您可以允许或阻止整个组织或特定网站集的自定义脚本功能。 (有关如何执行此操作的信息,请参阅 允许或阻止自定义 script。) 但是,一旦允许编写脚本,则无法识别:

  • 插入了哪些代码

  • 插入代码的位置

  • 谁插入了代码

) 任何页面或文档库的“设计和完全控制”权限级别 (“添加和自定义页面”权限的任何用户都可以插入可能对组织中的所有用户和资源产生强大影响的代码。

脚本不仅有权访问页面或网站,还可以访问组织中所有网站集和其他Microsoft 365 服务的内容。 执行脚本没有边界。 有关可审核的网站活动的信息,请参阅 配置网站集的审核设置

无法阻止或删除插入的脚本

如果已允许自定义脚本,则可以将设置更改为以后阻止用户添加自定义脚本,但不能阻止已插入的脚本的执行。 如果插入了危险或恶意脚本,则阻止它的唯一方法是删除托管该脚本的页面。 这可能会导致数据丢失。

自定义脚本的替代方法

SharePoint 框架是一个页面和 Web 部件模型,它提供一种受治理且完全受支持的方式来使用脚本技术构建解决方案,并支持开源工具。 SharePoint 框架的主要功能:

  • 框架在浏览器中的当前用户和连接的上下文中运行。

  • 控件呈现在普通页“文档对象模型” (DOM) 中。

  • 控件具有响应性和可访问性。

  • 开发人员可以访问生命周期。 此外,他们还可以访问负载、序列化和反序列化、配置更改等。

  • 可以使用喜欢的任何浏览器框架:React、Handlebars、Knockout、Angular 等。

  • 工具链基于 npm、ypeScript、Yeoman、webpack 和 gulp 等常见开放源代码客户端开发工具。

  • 管理员具有管理工具,可立即禁用解决方案,而不管已使用的实例数以及已使用它们的页面或站点数。

  • 解决方案可以部署在使用经典体验或新体验的 Web 部件和页面中。

  • 只有全局管理员、SharePoint 管理员和有权管理应用网站的人员才能添加解决方案。 有关授予用户管理应用站点的权限的信息,请参阅 请求应用安装权限