Как предотвратить атаку 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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