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;