Noprato Abrir o app

Segurança

Atualizada em 15 de agosto de 2026.

Por que esta página existe

Sua senha

Ela não é guardada. O que vai pro banco é um hash scrypt com um sal diferente pra cada pessoa. Nem lendo o arquivo do banco dá pra descobrir a senha de alguém.

scrypt de propósito, e não SHA: hash rápido é justamente o que permitiria testar bilhões de senhas por segundo se o banco vazasse. Este é lento e come memória por decisão.

Errar o login responde exatamente igual pra e-mail que não existe e pra senha errada — e gasta o mesmo tempo, rodando um scrypt à toa no caso do e-mail inexistente. Diferenciar transformaria a tela de login num detector de quem tem conta aqui, e num app de caloria isso é informação sobre a vida das pessoas.

Sua sessão

A sessão é uma linha no banco, não um cookie autossuficiente. O cookie carrega só o identificador dela mais uma assinatura.

A diferença aparece na hora de sair: sair apaga a linha, então um cookie copiado morre na hora. A primeira versão disto era só um cookie assinado, e ali sair não revogava nada — quem tivesse o cookie continuava dentro por 30 dias.

Seu histórico

O identificador do usuário entra em toda consulta, inclusive nas de apagar e atualizar. O identificador de uma refeição nunca é autorização por si só: saber o número de uma refeição não abre a refeição de outra pessoa.

Quem administra o serviço nunca vê o que você comeu. Não existe tela que abra o diário de alguém: o painel conta quantas refeições você registrou e em que dia foi a última, e o ranking de pratos mais fotografados é somado de todo mundo junto, sem dono.

O que ele vê é a lista de contas: e-mail, nome, quando se cadastrou, quantas refeições tem e se assina. Isso existe porque há coisas que só dá pra fazer apontando pra uma pessoa — liberar acesso de cortesia, gerar um link de recuperação pra quem pediu ajuda por e-mail, e encerrar uma conta que abusou.

Seu pagamento

O número do cartão é digitado dentro do Stripe e nunca passa por este servidor. O que fica aqui é o identificador de cliente e a situação da assinatura.

O aviso que o Stripe manda quando um pagamento acontece é conferido por assinatura criptográfica sobre o corpo original da mensagem, e cada aviso só é aplicado uma vez — o Stripe reenvia o mesmo evento por até 72 horas, e sem isso um pagamento poderia ser contado duas vezes.

Sua foto

Ela é reduzida no seu próprio celular antes de subir, enviada ao Google pra análise, e não é escrita em disco nenhum. O que sobra é a lista de alimentos em texto.

A chave da API do Google fica só no servidor. Ela nunca é embutida no aplicativo, nunca vai num cabeçalho montado pelo navegador e nunca aparece no código que chega até você.

O servidor

Recuperar a senha

O banco guarda o hash do código, nunca o código — banco vazado não vira acesso. O link vale 1 hora e uma vez só, e redefinir a senha derruba todas as sessões abertas.

Pedir o link responde igual pra e-mail que existe e pra e-mail que não existe, pela mesma razão do login. E há um teto de pedidos em aberto por conta: sem isso, a tela viraria uma forma de encher a caixa de entrada de alguém em nome do app.

O que ainda falta

Esta parte é o motivo de a página valer alguma coisa. Nada aqui é segredo, e nada aqui é desculpa.

Achou uma falha? Escreva pra noprato.app@gmail.com com o que você encontrou e como reproduzir. Não há programa de recompensa, mas há resposta — e o conserto vem antes de qualquer outra coisa na fila.

O pedido é só um: não teste em conta que não é sua, e não baixe dado de outras pessoas pra provar que dá.