Как предотвратить атаку xxe (XMldocument в .net)C#

Место общения программистов C#
Anonymous
Как предотвратить атаку xxe (XMldocument в .net)

Сообщение Anonymous »

У нас был аудит безопасности в нашем коде, и они упомянули, что наш код уязвим для атаки внешней сущности (xxe). Я использую следующий код -< /p>

Код: Выделить всё

string OurOutputXMLString=
"00000Logince_useridce_subscribernamece_subscriberidce_groupid
UnitTester9pDhE5AsKBHw85Sqgg6qdKQ==tOlkiae9epM="

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(OurOutputXMLString);
< /code>
В отчете по аудиту они говорят, что он терпит неудачу, потому что объект XML может содержать URL, которые могут разрешить за пределами предполагаемого управления. XML Entity Resolver попытается разрешить и получить внешние ссылки. Если контролируемый злоумышленником XML может быть отправлен на одну из этих функций, то злоумышленник может получить доступ к информации о внутренней сети, локальной файловой системе или других конфиденциальных данных.
Чтобы избежать этого, я написал следующий код, но он не работает. < /P>
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) .
Может ли кто -нибудь помочь, где мне не хватает?


Подробнее здесь: https://stackoverflow.com/questions/142 ... ent-in-net

Вернуться в «C#»