Класс 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 свойство.