Исправление для javax. xml .parsers.DocumentBuilderFactory - ошибка XXE (CWE ID 611), помеченная при сканировании Veracode в Android - PullRequest
0 голосов
/ 14 февраля 2020

javax. xml .parsers.DocumentBuilderFactory используется в нашем приложении Android для анализа и чтения xml, а также для изменения и записи в файл xml. Veracode помечает использование javax. xml .parsers.DocumentBuilderFactory с CWE ID 611 «Неправильное ограничение XML Ссылка на внешнюю сущность». Предлагаемое исправление: «Настройте синтаксический анализатор XML для отключения разрешения внешнего объекта». А в документации OW ASP упоминается несколько функций, которые можно установить с помощью метода setFeature на заводе. Однако проблема в том, что это исправление выдает «javax. xml .parsers.ParserConfigurationException: http://apache.org/xml/features/disallow-doctype-decl». Причина в том, что реализация Android возвращает "org. apache .harmony. xml .parsers.DocumentBuilderFactoryImpl", когда вызывается метод фабрики newInstance (), и эта реализация класса построителя не поддерживает setFeature для OW. ASP рекомендуемые функции.

DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(xmlFile);

Приведенный выше код помечается. Функциональность кода заключается в анализе базовых файлов xml, которые составляют документ .docx. Мы можем преобразовать прочитанную xml часть этого кода, чтобы использовать Android рекомендуемый XmlPullParser, но XmlPullParser не может использоваться для изменения этих xml файлов, так как наш текущий код использует DocumentBuilderFactory для того, чтобы одновременно прочитать эти XML, которые составляют файл .docx. и измените XML при экспорте файлов docx.

Потратил пару дней на поиск возможных решений и не смог найти ни одного работающего решения. Любая помощь / рекомендации о том, как мы можем решить эту проблему, будет принята с благодарностью!

...