Продукт обрабатывает XML-документ, который может содержать XML-сущности с URL-адресами, которые разрешаются в документы за пределами предполагаемой сферы контроля, что приводит к тому, что продукт встраивает неверные документы в свои выходные данные.
По умолчанию распознаватель XML-сущностей пытается разрешить и получить внешние ссылки. Если XML-файл, контролируемый злоумышленником, может быть отправлен одной из этих функций, злоумышленник может получить доступ к информации о внутренней сети, локальной файловой системе или другим конфиденциальным данным. Это известно как атака внешней сущности XML (XXE).
ничего
package com.integratingstuff.jaxb;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import com.integratingstuff.pojo.Item;
public class DoUnmarshall {
public static void main(String[] args) {
try
{
JAXBContext jaxbContext= JAXBContext.newInstance(Item.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
String xml = "<?xml version="1.0" encoding="UTF-8"?><item
price="" description="Test description" catalog-number="10"/>";
InputStream inputStream = new
ByteArrayInputStream(xml.getBytes());
Item item = (Item) unmarshaller.unmarshal(inputStream);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}