Classe System.Xml.XmlReader Impostazioni
Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.
Usare il Create metodo per ottenere XmlReader le istanze. Questo metodo usa la XmlReaderSettings classe per specificare le funzionalità da implementare nell'oggetto XmlReader creato.
Vedere le sezioni Osservazioni delle XmlReader pagine di riferimento e Create per informazioni sulle impostazioni da usare per controlli di conformità, convalida e altri scenari comuni. Per un elenco delle impostazioni predefinite, vedere il XmlReaderSettings() costruttore.
Considerazioni sulla sicurezza
Quando si usa la XmlReaderSettings classe , tenere presente quanto segue.
Per impostazione predefinita, i flag di convalida ProcessInlineSchema e ProcessSchemaLocation dell'oggetto XmlReaderSettings non sono impostati. Se questi flag sono impostati, verrà utilizzata la proprietà XmlResolver dell'oggetto XmlReaderSettings per risolvere i percorsi dello schema rilevati nel documento di istanza nel tipo XmlReader. Se l'oggetto XmlResolver è
null
, i percorsi dello schema non vengono risolti anche se vengono impostati i ProcessInlineSchema flag di convalida e ProcessSchemaLocation .Gli schemi aggiunti durante la convalida aggiungono nuovi tipi e possono alterare l'esito della convalida del documento in esame. Di conseguenza, gli schemi esterni devono essere risolti solo da origini attendibili.
I messaggi di errore di convalida possono esporre informazioni sensibili con modalità tenda l. I messaggi di avviso e di errore di convalida vengono gestiti tramite il ValidationEventHandler delegato oppure vengono esposti come se XmlSchemaValidationException non viene fornito alcun gestore eventi all'oggetto XmlReaderSettings (gli avvisi di convalida non causano la generazione di un'eccezione XmlSchemaValidationException ). Queste informazioni con modalità tenda l non devono essere esposte in scenari non attendibili. I messaggi di avviso di convalida vengono eliminati per impostazione predefinita e possono essere segnalati impostando il ReportValidationWarnings flag.
La SourceUri proprietà di un oggetto restituisce XmlSchemaValidationException il percorso dell'URI al file di schema che ha causato l'eccezione. La SourceUri proprietà non deve essere esposta in scenari non attendibili.
La disabilitazione del ProcessIdentityConstraints flag (abilitata per impostazione predefinita) è consigliata quando si convalidano documenti XML di grandi dimensioni in scenari di disponibilità elevata in scenari a disponibilità elevata con vincoli di identità su una parte importante del documento.
Gli oggetti XmlReaderSettings possono contenere informazioni sensibili quali le credenziali utente. È necessario prestare attenzione quando si memorizzano nella cache oggetti XmlReaderSettings o quando si passa l'oggetto XmlReaderSettings da un componente a un altro.
Per impostazione predefinita, l'elaborazione della DTD è disabilitata. Se si abilita l'elaborazione DTD, è necessario essere consapevoli dell'inclusione di DTD da origini non attendibili e possibili attacchi Denial of Service. XmlSecureResolver Usare per limitare le risorse a cui l'oggetto XmlReader può accedere.
Non accettare componenti di supporto, ad esempio oggetti NameTable, XmlNamespaceManager e XmlResolver da un'origine non attendibile.
L'utilizzo della memoria di un'applicazione che usa XmlReader può essere correlato alle dimensioni del documento XML analizzato. Quando per l'analisi vengono inviati documenti XML di dimensioni eccessive, si verifica un attacco di tipo DoS. È possibile limitare le dimensioni del documento che è possibile analizzare impostando la MaxCharactersInDocument proprietà e quindi limitare il numero di caratteri risultanti dall'espansione delle entità impostando la MaxCharactersFromEntities proprietà .