【发布时间】:2011-03-11 14:38:29
【问题描述】:
通常在 java 中解析 XML 时,使用
可以避免成为entity expansion attacks 的受害者dbf.setFeature(javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING, true);
其中 dbf 是 DocumentBuilderFactory,用于为 XML 解析创建 DocumentBuilder。
但是,假设我正在使用 JAXB 解组一些 XML,例如像这样:
final JAXBContext context = JAXBContext.newInstance(MyClass.class);
final Unmarshaller unmarshaller = context.createUnmarshaller();
final MyClass result = (MyClass) unmarshaller.unmarshal(input);
如何配置 JAXB 以在底层 XML 解析器上使用 FEATURE_SECURE_PROCESSING?
在谷歌上搜索答案会得到以下最佳结果: http://forums.java.net/node/699983
但是,我不想为了使实体扩展可配置而引入 XMLStreamFactory 等的实现。有没有办法只使用 JAXB API 来解决这个问题?
【问题讨论】: