重要: 本文包含的信息介绍了如何在计算机上降低安全设置或关闭安全功能。 您可以通过这些更改来解决特定的问题。 在实施这些更改之前,建议您对在特定环境中实施此解决方法可能带来的风险进行评估。 如果实施此解决方法,请采取任何适当的附加步骤来帮助保护计算机。
症状
安装以下 SharePoint Server 的 9 月安全更新后,一些 Web Part Pages Web Service 方法可能会被阻止。 此外,事件标记 “6loz1”或“5mh3d”记录在 SharePoint 统一日志记录系统 (ULS) 日志中。
-
SharePoint Foundation 2013 安全更新说明:2022 年 9 月 13 日 (KB5002159)
-
SharePoint Foundation 2013 安全更新说明:2022 年 9 月 13 日 (KB5002267)
-
SharePoint Enterprise Server 2016 语言包安全更新说明:2022 年 9 月 13 日 (KB5002142)
-
SharePoint Enterprise Server 2016 安全更新说明:2022 年 9 月 13 日 (KB5002269)
-
SharePoint Server 2019 语言包安全更新说明:2022 年 9 月 13 日 (KB5002257)
原因
为了增强 SharePoint 的安全性,已将增强的安全性检查添加到了 RenderWebPartForEdit 方法,以阻止在它们的属性中默认包含属性遍历字符“.”。 这可能会导致现有 Web Part Pages Web Service 方法被阻止。
解决方法
注意: 现成的功能及它们的 SharePoint Server 依赖项依赖于 web.config 文件中的默认设置。 如果你的 SharePoint Server 未部署任何自定义代码或组件,则不应对 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>,请为它添加 <SafeControl> 元素以及 AllowPropertiesTraversal="True" 属性。 以下是一个示例:
<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"/>