Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.
Używasz metody Create, aby uzyskać instancje XmlReader. 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ę domyślnych ustawień.
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, XmlResolver obiektu XmlReaderSettings jest używany do ustalania lokalizacji schematów napotkanych w dokumencie instancji w XmlReader pliku. Jeśli obiekt XmlResolver ma wartość
null, lokalizacje schematów nie są rozpoznawane, nawet jeśli flagi ProcessInlineSchema i ProcessSchemaLocation dotyczące walidacji 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ć pobierane tylko z zaufanych źródeł.
Komunikaty o błędach walidacji mogą uwidaczniać poufne informacje o modelu zawartości. Komunikaty o błędach walidacji i ostrzeżeniach są obsługiwane przy użyciu delegata ValidationEventHandler lub traktowane jako XmlSchemaValidationException, jeśli do obiektu XmlReaderSettings nie został dostarczony żaden program obsługi zdarzeń (ostrzeżenia dotyczące walidacji nie powodują wystąpienia XmlSchemaValidationException błędu). Te informacje o modelu zawartości 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 w obiekcie XmlSchemaValidationException zwraca ścieżkę URI do pliku schematu, który spowodował wyjątek. Właściwość SourceUri nie powinna być ujawniona w niezaufanych scenariuszach.
Wyłączenie flagi ProcessIdentityConstraints (domyślnie włączonej) jest zalecane podczas walidacji niezaufanych i dużych dokumentów XML w scenariuszach wymagających wysokiej dostępności, gdy używany jest schemat z ograniczeniami identyfikacyjnymi obejmującymi dużą część 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 atakach typu odmowa usługi. Użyj XmlSecureResolver aby ograniczyć zasoby, do których XmlReader może 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.