Поделиться через


Класс System.Xml.XmlReader Параметры

В этой статье приводятся дополнительные замечания к справочной документации по этому API.

Метод используется Create для получения XmlReader экземпляров. Этот метод использует XmlReaderSettings класс, чтобы указать, какие функции следует реализовать в объекте XmlReader , который он создает.

Дополнительные сведения о параметрах, используемых для соответствия проверка, проверки и других распространенных сценариев см. в разделах XmlReader "Примечания" и Create "Справочные страницы". См. XmlReaderSettings() конструктор списка параметров по умолчанию.

Вопросы безопасности

При использовании класса следует учитывать следующее XmlReaderSettings .

  • Флаги проверки ProcessInlineSchema и ProcessSchemaLocation объекта XmlReaderSettings по умолчанию не установлены. Если эти флаги установлены, для разрешения расположения схем, обнаруженных в экземпляре документа в объекте XmlResolver, используется арбитр XmlReaderSettings объекта XmlReader. XmlResolver Если объект имеет nullзначение, расположения схемы не разрешаются, даже если ProcessInlineSchemaProcessSchemaLocation заданы флаги проверки.

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

  • Сообщения об ошибках проверки могут предоставлять конфиденциальные данные режим палатки l. Сообщения об ошибке проверки и предупреждения обрабатываются с помощью ValidationEventHandler делегата или предоставляются как XmlSchemaValidationException если обработчик событий не предоставляется XmlReaderSettings объекту (предупреждения проверки не вызывают XmlSchemaValidationException возникновения). Эти сведения не должны предоставляться в ненадежных сценариях режим палатки l. Предупреждающие сообщения проверки подавляются по умолчанию и могут быть сообщены, задав ReportValidationWarnings флаг.

  • Свойство SourceUriXmlSchemaValidationException URI возвращает путь URI к файлу схемы, вызвавшего исключение. Свойство SourceUri не должно быть предоставлено в ненадежных сценариях.

  • Отключение ProcessIdentityConstraints флага (включено по умолчанию) рекомендуется при проверке, недоверенных, больших XML-документов в сценариях высокой доступности для схемы с ограничениями удостоверений в значительной части документа.

  • Объекты XmlReaderSettings могут содержать конфиденциальные сведения, например учетные данные пользователей. Следует соблюдать осторожность при кэшировании объектов XmlReaderSettings или при передаче объекта XmlReaderSettings от одного компонента другому.

  • Обработка DTD по умолчанию отключена. Если вы включите обработку DTD, необходимо учитывать включение DTD из ненадежных источников и возможных атак типа "отказ в обслуживании". XmlSecureResolver Используйте для ограничения ресурсов, к которым XmlReader может получить доступ.

  • Не следует принимать вспомогательные компоненты, например объекты NameTable, XmlNamespaceManager и XmlResolver, из ненадежных источников.

  • Объем памяти, который требуется приложению, использующему объект XmlReader, может соотноситься с размерами анализируемого XML-документа. Одна из форм атаки типа «отказ в обслуживании» заключается в передаче для синтаксического анализа чрезмерно больших XML-документов. Вы можете ограничить размер документа, который можно проанализировать, задав MaxCharactersInDocument свойство, а затем ограничить количество символов, полученных от расширения сущностей, задав MaxCharactersFromEntities свойство.