Чтобы предотвратить атаки XXE, я отключил перечисленные ниже функции в соответствии с рекомендациями для Java DocumentBuilderFactory — https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet.
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
dbf.setXIncludeAware(false);
dbf.setExpandEntityReferences(false);
Существует ли какая-либо уязвимость, если я не устанавливаю для external-general-entites и external-parameter-entities значение false? Поскольку это не позволит расширить эти внешние объекты, если мы установим для параметра disallow-doctype-decl значение true, а для XIncludeAware — значение false.
Безопасно ли удалить эти 2 строки из приведенного выше кода -
dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
или их обязательно нужно сохранить. Если это обязательно, какие уязвимости, если мы не установим для них значение false?
Приведите пример уязвимости, относящейся к внешним общим/параметрическим объектам, даже если для disallow-doctype установлено значение true, для XIncludeAware — значение false, а для ExpandEntityReferences — значение false.