8

当我使用强化工具进行扫描时,我在“XML 外部实体注入”下遇到了一些问题。

TransformerFactory trfactory = TransformerFactory.newInstance(); 

这是它显示错误的地方。我已经按照 fortify 的建议进行了以下修复

trfactory.setFeature("http://xml.org/sax/features/external-general-entities", false); 
trfactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); 

但问题仍然没有解决。如何解决这个问题?

4

5 回答 5

3
TransformerFactory trfactory = TransformerFactory.newInstance();
trfactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
trfactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
trfactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");

这就足够了。

于 2017-08-04T09:48:24.113 回答
1

如果 java 版本不兼容,有时它将无法工作。

if (javaVersion > 1.6) {
        dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
        dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
      }
else {
        if (javaVersion > 1.5) {
          dbf.setFeature("http://xerces.apache.org/xerces2-j/features.html#external-general-entities", false);
          dbf.setFeature("http://xerces.apache.org/xerces2-j/features.html#external-parameter-entities", false);
        }
else {
          dbf.setFeature("http://xerces.apache.org/xerces-j/features.html#external-general-entities", false);
          dbf.setFeature("http://xerces.apache.org/xerces-j/features.html#external-parameter-entities", false);
        }
 }

它对我有用:-)

于 2016-09-17T10:45:02.227 回答
0

你也可以试试:

    TransformerFactoryImpl transformerFactoryImpl = new TransformerFactoryImpl();
    Transformer transformer = transformerFactoryImpl.newTransformer();
    transformer.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
于 2016-09-23T10:46:25.967 回答
0

我尝试使用“Xalan”实现类而不是 TransformerFactory.newInstance()。它对我有用并且强化问题得到了修复

        TransformerFactoryImpl transformerFactoryImpl = new TransformerFactoryImpl();
        Transformer transformer = transformerFactoryImpl.newTransformer();
于 2016-07-14T15:43:50.300 回答
0

添加这一行。它对我有用。

factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
于 2020-02-24T07:28:21.587 回答