naveen_g Ответов: 2

Отсутствующая проблема проверки XML, о которой сообщалось в Fortify scan


Fortify Scan сообщила об отсутствии проверки XML в нижней строке.
XmlReader.Create(memoryStream)


Нет никакого XSD, доступного для входной строки. Я хочу проверить memoryStream, прежде чем он перейдет в XmlReader.Create(memoryStream). Есть ли лучший способ проверить memoryStream для XML в приведенном ниже коде, чтобы удовлетворить Fortify Scan?

Фактический код:

RequestSecurityTokenResponse resp;
            using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(tokenstring)))
            using (XmlReader xmlReader = XmlReader.Create(memoryStream))
            {
                WSTrust13ResponseSerializer serializer = new WSTrust13ResponseSerializer();
                WSTrustSerializationContext serializationContext = new WSTrustSerializationContext();
                resp = serializer.ReadXml(xmlReader, serializationContext);
            }


Укрепи Говорит:
Неспособность включить проверку при синтаксическом анализе XML дает злоумышленнику возможность предоставить вредоносный ввод.

Большинство успешных атак начинаются с нарушения предположений программиста. Принимая XML-документ без проверки его на соответствие DTD или XML-схеме, программист оставляет открытой дверь для злоумышленников, чтобы обеспечить неожиданный, необоснованный или вредоносный ввод. Синтаксический анализатор XML не может проверить все аспекты содержания документа; синтаксический анализатор не может понять полную семантику данных. Однако синтаксический анализатор может выполнить полную и тщательную работу по проверке структуры документа и, следовательно, гарантировать коду, обрабатывающему документ, что содержание хорошо сформировано.

Что я уже пробовал:

Пытался выдать ошибку, когда TryParsToXML (string)не разбирается.

2 Ответов

Рейтинг:
2

Member 341595

добавьте XmlReaderSettings в XmlReader.метод Create.
пожалуйста, ref Отсутствует проверка XML / 亂馬客 - 點部落[^]


Рейтинг:
0

johannesnestler

Я не понимаю... Фортифай точно сказал тебе, в чем проблема. Но вы не хотите следовать ему? Так что игнорируйте его и живите с "риском безопасности" или следуйте рекомендации - создайте правильный xsd для проверки ваших данных.

Кстати, я уже упоминал, что считаю fortify полным дерьмом? ;)

Что бы я сделал: игнорировал его до тех пор, пока у меня не будет других проблем, и это не будет ничего хорошего по телевизору, чтобы смотреть...