应用 SharePoint 服务器 2022 年 9 月安全更新 (KB5017733) 后,可能会阻止 Web 部件页面 Web 服务方法

应用对象
SharePoint Foundation 2013 SP1 SharePoint Server 2016 SharePoint Server 2019 SharePoint Server Subscription Edition

重要

本文包含的信息介绍了如何在计算机上降低安全设置或关闭安全功能。 您可以通过这些更改来解决特定的问题。 在实施这些更改之前,建议您对在特定环境中实施此解决方法可能带来的风险进行评估。 如果实施此解决方法,请采取任何适当的附加步骤来帮助保护计算机。

症状

安装以下 SharePoint 服务器 的 9 月安全更新后,一些 Web Part Pages Web Service 方法可能会被阻止。 此外,事件标记 “6loz1”或“5mh3d”记录在 SharePoint 统一日志记录系统 (ULS) 日志中。

原因

为了增强 SharePoint 的安全性,已将增强的安全性检查添加到了 RenderWebPartForEdit 方法,以阻止在它们的属性中默认包含属性遍历字符“.”。 这可能会导致现有 Web Part Pages Web Service 方法被阻止。

解决方法

注意

现成的功能及它们的 SharePoint 服务器 依赖项依赖于 web.config 文件中的默认设置。 如果 SharePoint 服务器 未部署任何自定义代码或组件,则无需引入对 web.config 的任何更改。如果发现任何现成的功能仍受默认 web.config 影响,请开具支持票证,帮助我们调查和解决问题。

警告

SharePoint web.config 文件中的默认 SafeControls 已完成安全评审,并已根据它们是否能被安全使用且在属性中具有属性遍历字符而设置了 AllowPropertiesTraversal 属性。 用户应在将任何其他 SafeControls AllowPropertiesTraversal 属性设置为 true 之前进行安全检查,以确保它们可以被安全使用且属性值中有属性遍历字符。

若要解决此问题,请取消阻止由安全检查阻止的控制。

首先,在 SharePoint ULS 日志中查找事件标记“6loz1”和“5mh3d”。 这些事件标记包含的信息会揭示哪些控制由于在属性值中具有属性遍历字符“.”而被阻止。 例如:

注意

6loz1 Unsafe control=<TypeName>、 <AssemblyName>、 <AssemblyVersion>、 <AssemblyLanguageSetting>、 <AssemblyPublicKey> ,用于在属性值中具有属性遍历字符。

接下来,检查被阻止的控制,确保它是安全的,并在属性值中具有属性遍历字符。 如果安全,请在 Web 应用程序的 web.config 文件中的 Configuration/SharePoint/SafeControls 节点中查找<该控件<的 SafeControl>>,并向其添加 AllowPropertiesTraversal=“True”属性。 如果在该节点中找不到<该控件的 SafeControl>,请使用 AllowPropertiesTraversal=“True”属性为其添加 <SafeControl> 元素。 以下是一个示例:

<SafeControl

    Assembly="CustomSolution.AssemblyName, Version=1.2.3.4,Culture=neutral, PublicKeyToken=11aa22bb33cc44dd"

    Namespace="CustomSolution.AssemblyName.NameSpace"

    TypeName="AffectedClass"

    AllowRemoteDesigner="True" Safe="True" SafeAgainstScript="True" AllowPropertiesTraversal="True"/>