System.Xml.XmlReaderSettings – třída

Poznámka:

Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.

Tuto metodu Create použijete k získání instance XmlReader. Tato metoda používá XmlReaderSettings třídu k určení funkcí, které se mají implementovat v objektu XmlReader , který vytvoří.

Informace o tom, která nastavení se mají použít pro kontroly shody, ověřování a další běžné scénáře, najdete v částech XmlReader Poznámky a Create referenční stránky. Seznam výchozích nastavení najdete v XmlReaderSettings() konstruktoru.

Bezpečnostní aspekty

Při použití XmlReaderSettings třídy zvažte následující skutečnosti.

  • Příznaky ProcessInlineSchema a ProcessSchemaLocation objektu XmlReaderSettings nejsou ve výchozím nastavení nastaveny. Když jsou tyto příznaky nastaveny, XmlResolver objektu XmlReaderSettings je použit k určení umístění schémat nalezených v dokumentu instance v XmlReader. XmlResolver Pokud je objekt null, umístění schématu nejsou vyřešena, i když jsou příznaky ověřování ProcessInlineSchema a ProcessSchemaLocation nastaveny.

  • Schémata přidaná během ověřování přidávají nové typy a můžou změnit výsledek ověření ověřovaného dokumentu. V důsledku toho by externí schémata měla být vyřešena pouze z důvěryhodných zdrojů.

  • Chybové zprávy ověřování můžou zveřejnit citlivé informace o modelu obsahu. Chyby ověření a varovné zprávy se zpracovávají pomocí delegáta ValidationEventHandler, nebo jsou zveřejněny jako XmlSchemaValidationException v případě, že pro objekt XmlReaderSettings není poskytována žádná obslužná rutina události (varování při ověřování nezpůsobují vyvolání XmlSchemaValidationException). Tyto informace o modelu obsahu by neměly být zpřístupněny v nedůvěryhodných scénářích. Zprávy upozornění na ověření jsou ve výchozím nastavení potlačeny a lze je hlásit nastavením příznaku ReportValidationWarnings .

  • Vlastnost SourceUri objektu XmlSchemaValidationException vrací cestu URI k souboru schématu, který způsobil výjimku. Vlastnost SourceUri by neměla být vystavena v nedůvěryhodných scénářích.

  • Zakázání příznaku ProcessIdentityConstraints (ve výchozím nastavení povoleno) se doporučuje při ověřování nedůvěryhodných a velkých dokumentů XML ve scénářích s vysokou dostupností oproti schématu s identitními omezeními nad velkou částí dokumentu.

  • XmlReaderSettings objekty mohou obsahovat citlivé informace, jako jsou přihlašovací údaje uživatele. Při ukládání objektů do mezipaměti XmlReaderSettings nebo při předávání objektu XmlReaderSettings z jedné komponenty do jiné byste měli být opatrní.

  • Zpracování DTD je ve výchozím nastavení zakázané. Pokud povolíte zpracování DTD, musíte mít na paměti zahrnutí DTD z nedůvěryhodných zdrojů a možných útoků na dostupnost služby. XmlSecureResolver Použijte k omezení prostředků, ke kterým XmlReader má přístup.

  • Nepřijímejte podpůrné komponenty, jako jsou objekty NameTable, XmlNamespaceManager a XmlResolver z nedůvěryhodného zdroje.

  • Využití paměti aplikace, která používá XmlReader , může mít korelaci s velikostí analyzovaného dokumentu XML. Jednou z forem útoku na dostupnost služby je odeslání příliš velkých dokumentů XML, které se mají analyzovat. Pomocí nastavení vlastnosti MaxCharactersInDocument můžete omezit velikost dokumentu, který lze analyzovat, a pomocí nastavení vlastnosti MaxCharactersFromEntities poté omezit počet znaků, které vzniknou rozšířením entit.