我运行Fortify扫描以排除安全漏洞。它建议我将以下功能设置为我的XML Document to XML String transformer。
final TransformerFactory tf = TransformerFactory.newInstance();
tf.setFeature("http://xml.org/sax/features/external-general-entities", false);
tf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
这会导致异常,因为这些字符串不存在。 XMLConstants.FEATURE_SECURE_PROCESSING有一个选项,但我不清楚是否阻止使用外部实体。 JavaDoc声明:“true指示实现安全地处理XML。这可能会限制XML构造以避免诸如拒绝服务攻击等条件。”
tf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
答案 0 :(得分:0)
如上面的评论中所述,这些功能需要在XML解析器中设置,而不是在XSLT Transformer中设置。