O que faz
Cole XML e a ferramenta o analisa em uma estrutura legível: a declaração XML, o DOCTYPE e quaisquer entidades que ele declare, e a árvore de elementos completa com seus namespaces e atributos, junto com CDATA, comentários e instruções de processamento. Ela verifica se o documento é bem-formado e roda uma análise de segurança da superfície de ataque do XML. Ela não busca nada e não resolve nada.
O que ela mostra
O XML reúne vários tipos de nó em um documento, e a ferramenta os separa: a declaração com sua versão e codificação; o DOCTYPE e quaisquer entidades que ele define; a árvore de elementos, com os namespaces (as ligações xmlns) e os atributos mostrados por elemento; e as seções CDATA, os comentários e as instruções de processamento. Ela também verifica a boa formação no sentido do XML: que toda tag está fechada corretamente e que o documento tem exatamente um elemento raiz.
A superfície de ataque do XML
O XML é poderoso de um jeito que o torna perigoso quando vem de uma fonte não confiável, e a análise de segurança da ferramenta sinaliza exatamente onde esse perigo mora:
- Um DOCTYPE, para começar, porque a definição de tipo de documento é o que habilita o resto;
- Entidades externas, que podem puxar um arquivo local ou uma URL e são o mecanismo dos ataques de XML External Entity (XXE);
- Entidades de parâmetro, uma forma usada para passar XXE por defesas ingênuas; e
- Expansão de entidades, o aninhamento por trás do ataque de negação de serviço billion laughs.
Ver essas coisas destacadas é o ponto: isso diz se um determinado documento está tentando fazer algo que um documento de dados simples nunca faria.
Segura por construção
A ferramenta é um tokenizador de texto, não um processador de XML. Ela lê o documento como texto e descreve sua estrutura, e nunca resolve uma entidade, nunca abre uma referência externa e nunca expande nada. É isso que a permite analisar XML hostil com segurança: os próprios recursos sobre os quais ela avisa são descritos, não executados. Esta é a contraparte de propósito geral do decodificador SAML, que recusa uma DTD por completo porque uma mensagem SAML nunca legitimamente tem uma.
Como usar
Cole um documento XML e leia sua declaração, DOCTYPE e entidades, árvore de elementos e os sinalizadores de segurança. A análise é determinística e local, então é seguro inspecionar XML de qualquer fonte.