Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Este artigo fornece observações complementares à documentação de referência para esta API.
Usa o método Create para obter instâncias XmlReader. Esse método usa a XmlReaderSettings classe para especificar quais recursos implementar no XmlReader objeto que ele cria.
Consulte as secções de comentários das páginas de referência XmlReader e Create para obter informações sobre quais configurações usar para verificações de conformidade, validação e outros cenários comuns. Consulte o XmlReaderSettings() construtor para obter uma lista de configurações padrão.
Considerações de segurança
Considere o seguinte ao usar a XmlReaderSettings classe.
Os sinalizadores de validação ProcessInlineSchema e ProcessSchemaLocation de um objeto XmlReaderSettings, não são definidos por padrão. Quando esses flags estão ativados, o XmlResolver do objeto XmlReaderSettings é utilizado para resolver localizações de esquema encontradas no documento de instância no XmlReader. Se o XmlResolver objeto for
null, os locais do esquema não serão resolvidos, mesmo que os sinalizadores de validação ProcessInlineSchema e ProcessSchemaLocation estejam definidos.Os esquemas adicionados durante a validação adicionam novos tipos e podem alterar o resultado da validação do documento que está sendo validado. Como resultado, os esquemas externos só devem ser resolvidos a partir de fontes confiáveis.
As mensagens de erro de validação podem expor informações confidenciais do modelo de conteúdo. As mensagens de erro e aviso de validação são tratadas usando o delegado ValidationEventHandler ou são expostas como um XmlSchemaValidationException se nenhum manipulador de eventos for fornecido ao objeto XmlReaderSettings (avisos de validação não fazem com que um XmlSchemaValidationException seja lançado). Essas informações do modelo de conteúdo não devem ser expostas em cenários não confiáveis. As mensagens de aviso de validação são suprimidas por padrão e podem ser relatadas definindo o ReportValidationWarnings sinalizador.
A SourceUri propriedade de um XmlSchemaValidationException devolve o caminho URI do ficheiro de esquema que causou a exceção. A propriedade SourceUri não deve ser exposta em cenários não confiáveis.
A desativação da flag ProcessIdentityConstraints (habilitado por padrão) é recomendada ao validar documentos XML grandes e não confiáveis em cenários de alta disponibilidade contra um esquema com restrições de identidade sobre uma grande parte do documento.
XmlReaderSettings objetos podem conter informações confidenciais, como credenciais de usuário. Você deve ter cuidado ao armazenar objetos em cache XmlReaderSettings ou ao passar o XmlReaderSettings objeto de um componente para outro.
O processamento DTD está desativado por padrão. Se você habilitar o processamento de DTD, precisará estar ciente da inclusão de DTDs de fontes não confiáveis e possíveis ataques de negação de serviço. Use o XmlSecureResolver para restringir os recursos que o XmlReader pode acessar.
Não aceite componentes de suporte, como objetos NameTable, XmlNamespaceManagere XmlResolver, de uma fonte não confiável.
O uso de memória de um aplicativo que usa XmlReader pode ter uma correlação com o tamanho do documento XML analisado. Uma forma de ataque de negação de serviço é quando documentos XML excessivamente grandes são enviados para serem analisados. Você pode limitar o tamanho do documento que pode ser analisado definindo a MaxCharactersInDocument propriedade e, em seguida, limitar o número de caracteres resultantes da expansão de entidades definindo a MaxCharactersFromEntities propriedade.