From a5ee11295c6f7025880196428ab0a06b63fdc517 Mon Sep 17 00:00:00 2001 From: Jeremy Landis Date: Wed, 25 Sep 2024 22:38:35 -0400 Subject: [PATCH] Fix code scanning alert no. 3: Resolving XML external entity in user-controlled data Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- src/main/java/com/ibatis/common/xml/NodeletParser.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/ibatis/common/xml/NodeletParser.java b/src/main/java/com/ibatis/common/xml/NodeletParser.java index ecc6b719..d1de31c0 100644 --- a/src/main/java/com/ibatis/common/xml/NodeletParser.java +++ b/src/main/java/com/ibatis/common/xml/NodeletParser.java @@ -197,6 +197,9 @@ private Document createDocument(Reader reader) throws ParserConfigurationException, FactoryConfigurationError, SAXException, IOException { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); + factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); + factory.setFeature("http://xml.org/sax/features/external-general-entities", false); + factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA, ""); factory.setValidating(validation);