Отсутствующая проблема проверки 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)не разбирается.