Pular para o conteúdo

Web

O XML que confia

A PampaBill recebe faturas em XML num endpoint POST /ingest. O código do parser está em invoice-parser.js, e parser-options.txt explica cada opção de configuração. O parse-log.txt mostra o que aconteceu quando uma fatura trouxe um DTD.

Antes de atacar qualquer coisa, você precisa reconhecer por que esse parser é perigoso. Das três opções configuradas, só UMA, quando ligada, faz o parser realmente resolver entidades externas (ir buscar um arquivo ou URL e colar o conteúdo). O nome dessa opção é a flag.

Formato: tocaia{...} em minúsculas, o nome da opção sem espaços. Exemplo com a mesma forma, que não é a resposta: tocaia{readtimeout}.

Arquivos do desafio

  • invoice-parser.js

    1,1 KB · SHA-256 93a1060b6b38bbae…

    Baixar
  • parser-options.txt

    920 B · SHA-256 7017c7e71b2235ed…

    Baixar
  • sample-invoice.xml

    144 B · SHA-256 91efbadcf0cab99d…

    Baixar
  • parse-log.txt

    701 B · SHA-256 a723094363ca92bd…

    Baixar

Exemplo resolvido

Este desafio vem com a solução em passos. Abra um de cada vez e tente o próximo sozinho antes de abrir. Cada passo aberto conta como ajuda no seu rating.

  1. Passo 1 Leia como o parser é criado

  2. Passo 2 Entenda cada opção

  3. Passo 3 Separe aceitar de resolver

  4. Passo 4 Escreva a flag

Tudo se resolve com ferramentas gratuitas.