У меня проблемы с передачей анализатора инструмента stati c с помощью Fortify (OWSAP A1 Injection) - Отсутствует XML Проверка
После http://www.kdgregory.com/index.php?page=xml.parsing я реализовал схему XSD для своего проверка, но она все еще не проходит из-за dbf.setValidating (false) , поэтому мне пришлось установить его в значение true, чтобы оно проходило через инструмент сканирования ...
При установке на истинные предупреждения могут быть видно, потому что мой XML не является DocType ...
![enter image description here](https://i.stack.imgur.com/vmauY.png)
Я знаю, что могу использовать трансформатор, чтобы помочь мне установить, но он все равно не работает documentBuilder.parse (is)
После добавления этой строки в мое XML Сообщение
<!DOCTYPE schema PUBLIC "http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
Может появиться другое предупреждение, Я потерял попытки пройти анализ stati c для моих кодов. Пожалуйста, прокомментируйте, чтобы я мог предоставить больше деталей или примеров, если это необходимо ..
Моя конечная цель - полностью удалить предупреждения ..
![enter image description here](https://i.stack.imgur.com/MsTOT.png)
XML
<?xml version="1.0" encoding="UTF-8"?>
<Message>
<MessageType>...</MessageType>
<ID>...</TransactionID>
<FID>fileID</FID>
<FileName>jpg</FileName>
<FileContent>....</FileContent>
</Message>
Подтвердить XML Код
public static Document getValidatingXmlParser(String schemaFile, String xmlStr) throws IOException, TransformerConfigurationException{
DocumentBuilder documentBuilder = null;
Document document = null;
InputStream is = new ByteArrayInputStream(xmlStr.getBytes("UTF-8"));
try {
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new StreamSource(schemaFile));
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
dbf.setValidating(true);
dbf.setSchema(schema);
dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
dbf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
dbf.setAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");
documentBuilder = dbf.newDocumentBuilder();
documentBuilder.setErrorHandler(new SAXErrorHandler());
document = documentBuilder.parse(is);
document.getDocumentElement().normalize();
} catch (ParserConfigurationException e) {
log.debug("Unable to create XML parser" + e);
} catch (SAXException e) {
log.debug("XML parsing exception while loading schema: " + e);
} catch (UnsupportedOperationException e) {
log.debug("UnsupportedOperationException" + e);
}
return document;
}