System.Xml.XmlReader Ustawienia, klasa

Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.

Metoda służy do uzyskiwania CreateXmlReader wystąpień. Ta metoda używa XmlReaderSettings klasy , aby określić, które funkcje mają być zaimplementowane w tworzonym XmlReader obiekcie.

Zapoznaj się z sekcjami Uwagi stron XmlReader referencyjnych i Create , aby uzyskać informacje na temat ustawień używanych do sprawdzania zgodności, walidacji i innych typowych scenariuszy. Zobacz konstruktor, XmlReaderSettings() aby uzyskać listę ustawień domyślnych.

Zagadnienia dotyczące zabezpieczeń

Podczas korzystania z XmlReaderSettings klasy należy wziąć pod uwagę następujące kwestie.

  • Flagi ProcessInlineSchema i ProcessSchemaLocation walidacji XmlReaderSettings obiektu nie są domyślnie ustawione. Gdy te flagi są ustawione, XmlResolverXmlReaderSettings obiekt jest używany do rozpoznawania lokalizacji schematu napotkanych w dokumencie wystąpienia w XmlReaderpliku . XmlResolver Jeśli obiekt ma nullwartość , lokalizacje schematu nie są rozpoznawane, nawet jeśli ProcessInlineSchema flagi weryfikacji i ProcessSchemaLocation są ustawione.

  • Schematy dodane podczas walidacji dodają nowe typy i mogą zmienić wynik weryfikacji weryfikowanego dokumentu. W związku z tym schematy zewnętrzne powinny być rozpoznawane tylko z zaufanych źródeł.

  • Komunikaty o błędach sprawdzania poprawności mogą uwidaczniać poufne informacje con tryb namiotu l. Komunikaty o błędach walidacji i ostrzeżeniach są obsługiwane przy użyciu delegata ValidationEventHandler lub są uwidocznione w taki sposób, jakby XmlSchemaValidationException żaden program obsługi zdarzeń nie został dostarczony do XmlReaderSettings obiektu (ostrzeżenia dotyczące walidacji nie powodują XmlSchemaValidationException wystąpienia błędu). Te informacje con tryb namiotu l nie powinny być widoczne w niezaufanych scenariuszach. Komunikaty ostrzegawcze dotyczące walidacji są domyślnie pomijane i mogą być zgłaszane przez ustawienie flagi ReportValidationWarnings .

  • Właściwość SourceUri obiektu XmlSchemaValidationException zwraca ścieżkę identyfikatora URI do pliku schematu, który spowodował wyjątek. Właściwość SourceUri nie powinna być widoczna w niezaufanych scenariuszach.

  • ProcessIdentityConstraints Wyłączenie flagi (domyślnie włączonej) jest zalecane w przypadku walidacji, niezaufanych, dużych dokumentów XML w scenariuszach wysokiej dostępności względem schematu z ograniczeniami tożsamości w dużej części dokumentu.

  • XmlReaderSettings obiekty mogą zawierać poufne informacje, takie jak poświadczenia użytkownika. Podczas buforowania XmlReaderSettings obiektów lub przekazywania XmlReaderSettings obiektu z jednego składnika do innego należy zachować ostrożność.

  • Przetwarzanie DTD jest domyślnie wyłączone. Jeśli włączysz przetwarzanie DTD, musisz pamiętać o dołączaniu dtD z niezaufanych źródeł i możliwych ataków typu "odmowa usługi". Użyj polecenia , XmlSecureResolver aby ograniczyć zasoby, do których XmlReader można uzyskać dostęp.

  • Nie akceptuj składników pomocniczych, takich jak NameTable, XmlNamespaceManageri , XmlResolver z niezaufanego źródła.

  • Użycie pamięci aplikacji, która używa XmlReader , może mieć korelację z rozmiarem analizowanego dokumentu XML. Jedną z form ataku typu "odmowa usługi" jest to, że zbyt duże dokumenty XML są przesyłane do analizy. Można ograniczyć rozmiar dokumentu, który można przeanalizować, ustawiając MaxCharactersInDocument właściwość, a następnie ograniczając liczbę znaków wynikających z rozszerzania jednostek przez ustawienie MaxCharactersFromEntities właściwości.