Как предотвратить XXE-атаку (XmlDocument в .net)

Мы провели аудит безопасности нашего кода, и они отметили, что наш код уязвим для атаки EXternal Entity (XXE). Я использую следующий код -

string OurOutputXMLString=
"00000Logince_useridce_subscribernamece_subscriberidce_groupidUnitTester9pDhE5AsKBHw85Sqgg6qdKQ==tOlkiae9epM="

 XmlDocument xmlDoc = new XmlDocument();
 xmlDoc.LoadXml(OurOutputXMLString);

В отчете об аудите говорится, что это не удалось, поскольку сущность XML может содержать URL-адреса, которые могут разрешаться за пределами предполагаемого контрона. Средство распознавания сущностей XML попытается разрешить и получить внешние ссылки. Если контролируемый злоумышленником XML может быть передан одной из этих функций, то злоумышленник может получить доступ к информации о внутренней сети, локальной файловой системе или другим конфиденциальным данным. Чтобы избежать этого, я написал следующий код, но он не работает.

MemoryStream stream =
    new MemoryStream(System.Text.Encoding.Default.GetBytes(OurOutputXMLString));

XmlReaderSettings settings = new XmlReaderSettings();

settings.DtdProcessing = DtdProcessing.Prohibit;
settings.MaxCharactersFromEntities = 6000;
XmlReader reader = XmlReader.Create(stream, settings);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(reader);

но я вижу здесь, что читатель не имеет никакого значения для загрузки в xmlDoc (XmlDocument). Может кто-нибудь помочь, где я пропускаю вещи? Любая помощь приветствуется!

Ответы на вопрос(2)

Ваш ответ на вопрос