From 554b828745f292bc1053ff52597e6b311f83be39 Mon Sep 17 00:00:00 2001 From: Looly Date: Sun, 15 Jan 2023 11:08:09 +0800 Subject: [PATCH] =?UTF-8?q?XmlUtil.readObjectFromXml=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=B3=A8=E5=85=A5=E6=BC=8F=E6=B4=9E=E7=9A=84=E8=AD=A6=E5=91=8A?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=EF=BC=8C=E5=B9=B6=E6=A0=87=E8=AF=86=E4=B8=BA?= =?UTF-8?q?=E5=BA=9F=E5=BC=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ .../main/java/cn/hutool/core/util/XmlUtil.java | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ccb2e82b2..c83be53ea 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ # 5.8.12.M1 (2023-01-15) ### 🐣新特性 +* 【core 】 XmlUtil.readObjectFromXml增加注入漏洞的警告注释,并标识为废弃(issue#2857@Github) + ### 🐞Bug修复 * 【core 】 修复HexUtil.isHexNumber()对"-"的判断问题(issue#2857@Github) diff --git a/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java index 9f46d7495..a824ac13b 100755 --- a/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java @@ -331,36 +331,48 @@ public class XmlUtil { } /** - * 从XML中读取对象 Reads serialized object from the XML file. + * 从XML中读取对象 Reads serialized object from the XML file.
+ * 注意,使用此方法解析不受信任 XML 字符串时,可能容易受到远程代码执行攻击!
+ * 见:https://gitee.com/dromara/hutool/issues/I6AEX2 * * @param 对象类型 * @param source XML文件 * @return 对象 + * @deprecated 使用此方法解析不受信任 XML 字符串时,可能容易受到远程代码执行攻击,废弃 */ + @Deprecated public static T readObjectFromXml(File source) { return readObjectFromXml(new InputSource(FileUtil.getInputStream(source))); } /** - * 从XML中读取对象 Reads serialized object from the XML file. + * 从XML中读取对象 Reads serialized object from the XML file.
+ * 注意,使用此方法解析不受信任 XML 字符串时,可能容易受到远程代码执行攻击!
+ * 见:https://gitee.com/dromara/hutool/issues/I6AEX2 * * @param 对象类型 * @param xmlStr XML内容 * @return 对象 * @since 3.2.0 + * @deprecated 使用此方法解析不受信任 XML 字符串时,可能容易受到远程代码执行攻击,废弃 */ + @Deprecated public static T readObjectFromXml(String xmlStr) { return readObjectFromXml(new InputSource(StrUtil.getReader(xmlStr))); } /** - * 从XML中读取对象 Reads serialized object from the XML file. + * 从XML中读取对象 Reads serialized object from the XML file.
+ * 注意,使用此方法解析不受信任 XML 字符串时,可能容易受到远程代码执行攻击!
+ * 见:https://gitee.com/dromara/hutool/issues/I6AEX2 * * @param 对象类型 * @param source {@link InputSource} * @return 对象 * @since 3.2.0 + * @deprecated 使用此方法解析不受信任 XML 字符串时,可能容易受到远程代码执行攻击,废弃 */ + @Deprecated @SuppressWarnings("unchecked") public static T readObjectFromXml(InputSource source) { Object result;