- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在jdk1.6中,我在设置的时候
transformerFactory.setFeature(XMLConstants.ACCESS_EXTERNAL_DTD, false)
我遇到了以下错误:
javax.xml.transform.TransformerConfigurationException: Cannot set the feature 'http://javax.xml.XMLConstants/property/accessExternalDTD' on this TransformerFactory. at org.apache.xalan.processor.TransformerFactoryImpl.setFeature(TransformerFactoryImpl.java:418)
与我在这里找到的一样:How to prevent xalan.jar that has META-INF\services\javax.xml.transform.TransformerFactory from taking over JDK 1.6 built in Xalan implementation?我无法进行此处建议的更改,因为我的管理员已审查过其他 API 冲突。
根据此链接:http://xml.apache.org/xalan-j/features.html#domsource您可以使用 TransformerFactory.setFeature(String, boolean)
方法来设置特征的值。 Xalan-Java 仅支持设置 XMLConstants.FEATURE_SECURE_PROCESSING
功能。对于所有其他功能,TransformerFactory 公开它们的值,但不能更改它们的状态。
因此,如果使用 TransormerFactory 的 xalan 实现,我们似乎只能设置此功能。
transformerFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
最后是我的问题:如果我们设置功能:
transformerFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
然后是另一个功能 (XMLConstants.ACCESS_EXTERNAL_DTD
) 自动设置为 false。
我从我设置的日志中得到上述功能为“假”。但我想确定 accessExternalDTD
功能是否默认设置为 false,或者安全处理功能是否设置为 true。
最佳答案
在 Java 8 中是的。如果我们设置
TransformerFactory factory = TransformerFactory.newInstance();
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
然后属性 ACCESS_EXTERNAL_DTD
,ACCESS_EXTERNAL_STYLESHEET
设置为 ""
,如 owasp guide推荐。
我们可以通过以下方式验证它:
Object hasExternalDtd=factory.getAttribute(XMLConstants.ACCESS_EXTERNAL_DTD);
Object hasExternalStyle=factory.getAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET);
设置FEATURE_SECURE_PROCESSING
功能后。
如果我们不设置它,则两个属性的默认值为 all
。
关于java - 在 transformerFactory 中设置 FEATURE_SECURE_PROCESSING 是否也会更新其他安全功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29924050/
我正在使用 Piccolo jar 并使用 XMLReaderFactory 创建 XML 阅读器。我需要设置安全处理功能,因此我这样做了, xmlReader = XMLReaderFactory.
我使用 Eclipse、Spring MVC 和 Maven。Java 版本是 1.6 我有以下方法 public static DocumentBuilder getBuilder(ServletC
在jdk1.6中,我在设置的时候 transformerFactory.setFeature(XMLConstants.ACCESS_EXTERNAL_DTD, false) 我遇到了以下错误: ja
我们要求我们的 XML 解析器必须支持 XMLConstants.FEATURE_SECURE_PROCESSING。 不幸的是,与 Android bundle 在一起的 XML 解析器没有。我找不
我在使用 XSLFO 和 XSLT 从 Java 对象生成 PDF 时遇到问题: 我有这个代码: TransformerFactory.newInstance("org.apache.xalan.pr
编辑:2014 年 10 月 31 日 The fix for this is now available在 ReSTLet 2.2 和 master( future 的 2.3)分支中 我们的 Ne
我是一名优秀的程序员,十分优秀!