Pular para o conteúdo

Web

Lendo o patch

Aqui estão as duas versões do serviço de token: before.js (com a falha) e after.js (consertado). Compare as duas.

O before.js desserializa o payload e USA os campos na hora (confia no role, deixa o _type escolher o handler) e só calcula a assinatura para gravar no log, nunca para comparar. O after.js junta várias defesas: verifica a assinatura em tempo constante, só segue se ela bater, lê apenas uma lista de permissão de campos, ignora o _type, e tira o papel do usuário de um armazenamento no servidor.

Várias mudanças ajudam, mas UMA é a ordem que sustenta todas as outras: o after.js confere a autenticidade dos bytes ANTES de ler qualquer campo do payload. A flag é o nome dessa ordem, em minúsculas, com as palavras unidas por _.

Formato: tocaia{...}. Exemplo com a mesma forma, que não é a resposta: tocaia{read_the_patch}.

Arquivos do desafio

  • before.js

    1 KB · SHA-256 878ddc0e7a91991c…

    Baixar
  • after.js

    1,5 KB · SHA-256 fb02ef0411471624…

    Baixar

Tudo se resolve com ferramentas gratuitas.