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
null
wartość , 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.