Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
Вы используете метод Create для получения экземпляров XmlReader. Этот метод использует XmlReaderSettings класс, чтобы указать, какие функции следует реализовать в объекте XmlReader , который он создает.
Дополнительные сведения о параметрах, используемых для проверок соответствия, проверки и других распространенных сценариев см. в разделах XmlReader "Примечания" и Create "Справочные страницы". См. XmlReaderSettings() конструктор списка параметров по умолчанию.
Вопросы безопасности
При использовании класса XmlReaderSettings, следует учитывать следующее.
Флаги проверки ProcessInlineSchema и ProcessSchemaLocation в объекте XmlReaderSettings не задаются по умолчанию. Если эти флаги заданы, XmlResolver объекта XmlReaderSettings используется для разрешения расположений схем, встречающихся в документе экземпляра XmlReader. Если объект XmlResolver имеет значение
null
, расположения схем не будут разрешены, даже если ProcessInlineSchema и ProcessSchemaLocation заданы флаги проверки.Схемы, добавленные во время проверки, добавляют новые типы и могут изменить результаты проверки проверяемого документа. Следовательно, внешние схемы должны браться на рассмотрение только из надежных источников.
Сообщения об ошибках проверки могут предоставлять конфиденциальные сведения о модели содержимого. Сообщения об ошибке проверки и предупреждения обрабатываются с помощью ValidationEventHandler делегата или передаются напрямую как XmlSchemaValidationException, если обработчик событий не предоставлен объекту XmlReaderSettings (предупреждения проверки не приводят к выбросу XmlSchemaValidationException). Эти сведения о модели содержимого не должны предоставляться в ненадежных сценариях. Предупреждающие сообщения проверки подавляются по умолчанию и могут быть сообщены, задав ReportValidationWarnings флаг.
Свойство SourceUri элемента XmlSchemaValidationException возвращает путь URI к файлу схемы, который вызвал исключение. Свойство SourceUri не должно быть предоставлено в ненадежных сценариях.
Отключение ProcessIdentityConstraints флага (включено по умолчанию) рекомендуется при проверке ненадёжных больших XML-документов в сценариях высокой доступности для схемы с ограничениями идентификации в большой части документа.
XmlReaderSettings объекты могут содержать конфиденциальную информацию, например учетные данные пользователя. При кэшировании объектов XmlReaderSettings или при передаче объекта XmlReaderSettings от одного компонента к другому следует быть осторожным.
Обработка DTD отключена по умолчанию. Если вы включите обработку DTD, необходимо учесть возможность включения DTD из ненадежных источников и возможных атак типа "отказ в обслуживании". XmlSecureResolver Используйте для ограничения ресурсов, к которым XmlReader может получить доступ.
Не принимать вспомогательные компоненты, такие как NameTable, XmlNamespaceManagerи XmlResolver объекты, из ненадежного источника.
Использование памяти приложения, использующего XmlReader, может иметь корреляцию с размером XML-документа, который был проанализирован. Одна из форм атаки типа "отказ в обслуживании" заключается в том, что для анализа отправляются слишком большие XML-документы. Вы можете ограничить размер документа, который можно проанализировать, задав MaxCharactersInDocument свойство, а затем ограничить количество символов, полученных от расширения сущностей, задав MaxCharactersFromEntities свойство.