Java(DocumentBuilderFactory)
Java(DocumentBuilderFactory)
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
dbf.setXIncludeAware(false);
dbf.setExpandEntityReferences(false);Python(defusedxml)
Python(defusedxml)
from defusedxml.ElementTree import parse
tree = parse('upload.xml') # 默认禁用 DTD 与实体解析PHP
PHP
// PHP 8 / libxml 2.9+ 默认不加载外部实体
// 避免传入 LIBXML_NOENT(该选项会开启实体替换)
// libxml_disable_entity_loader 自 PHP 8.0 起已废弃,无需再调用建议统一封装安全解析工厂,禁止业务代码直接实例化解析器。