Executando verificação de segurança...
7

Como criei o Sigilo: um app de mensagens temporárias sem backend, em 48h sem ser desenvolvedor

Fala, galera! Tudo em ordem? de ontem pra hoje, misturei café com uma playlist de UK Garage, curiosidade, criatividade e 5 créditos gratuitos no Lovable, e nasceu o Sigilo.

A ideia era simples: um app onde você escreve uma mensagem, gera um link secreto e manda pra alguém. Quem abrir vê uma vez só. Depois, já era.

Sem login. 100% anônimo. Sem banco de dados. Sem rastros.

Abri o Lovable, que eu uso muito pra testar ideias rápido, e fui direto: uma tela pra escrever o segredo, outra pra gerar o link.
Tudo funcionando sem backend, usando só criptografia no browser e o próprio link como “armazenamento”.

E pronto, temos o MVP rodando la

Por que fiz isso?

Foi um experimento. Um jeito de brincar com a ideia de comunicação efêmera e anônima, sem as amarras comuns de autenticação, backend ou qualquer tipo de coleta de dado.

Comprei o domínio mais barato que achei (sigilo.live, R$11) e resolvi ver até onde dava pra ir com as ferramentas que eu já uso no dia a dia.

Como funciona o Sigilo (tecnicamente)

1. Criação da Mensagem
Na tela inicial, o usuário digita sua mensagem secreta. Ele pode escolher se quer ativar o timer de autodestruição (padrão: ativado) e definir o tempo (30s, 1min, 30min, 1h).

Ao clicar em "Gerar Link Secreto":

  • Uma chave criptográfica de 256 bits é gerada aleatoriamente
  • Um payload é montado com:
    • Texto da mensagem
    • Timestamp de criação
    • TTL (time to live)
    • Número máximo de visualizações (fixado em 1)
  • O payload é criptografado com AES-GCM
  • A mensagem criptografada e a chave são embutidas na URL como hash: https://sigilo.live/#msg=ABC123...&key=XYZ789...

Nada disso é enviado a nenhum servidor.

2. Leitura da Mensagem

Quando alguém acessa o link:

  • O app detecta a presença de msg e key na URL e entra em modo leitura
  • A mensagem é descriptografada no navegador usando AES-GCM

O app verifica:

  • Se a mensagem já foi destruída
  • Se o tempo expirou (caso o timer esteja ativado)
  • Se já foi visualizada antes

3. Armazenamento temporário (client-side only)

  • A visualização e o status de destruição são controlados via localStorage e sessionStorage
  • O timestamp da primeira leitura é salvo para controle de tempo
  • Após a leitura, a mensagem é marcada como destruída e desaparece para sempre
  1. Segurança e Limitações
  • Nada é salvo em servidor
  • Máximo de 10KB por mensagem
  • TTL máximo de 24h
  • Toda entrada é sanitizada contra XSS
  • As mensagens desaparecem mesmo se o navegador for recarregado

Recursos que quero testar em breve

  • Mensagens com imagem
  • Proteção por senha
  • QR code para leitura
  • Versão white label pra marcas ou empresas
  • Envio anônimo do link via Whatsapp

(Aceito sugestões de idéias)

Onde isso pode ser útil?

Ainda tô entendendo. Pode ser só uma curiosidade digital — mas talvez tenha espaço como:
Uma forma segura de enviar senhas e acessos pontuais
Uma ferramenta de suporte técnico interno
Uma camada de comunicação em times que precisam apagar rastros
Ou só um espaço pra mandar aquele recado que não precisa durar

Conclusão

Não é um microsaas. Não é IA. Não tem login. Não tem infra.
É só um experimento que talvez vire alguma coisa. Ou não.
Se quiser testar: https://sigilo.live
Se curtir, manda pra alguém. Se quiser apoiar, tem uma página pra isso lá dentro.
Ainda é tudo muito rascunho. Mas às vezes é desses rascunhos que nascem as paradas mais maneiras.

Aceito críticas, sugestões e tudo mais vem comigo

Carregando publicação patrocinada...
5

Amigo, não quero parecer negativo nem jogar um balde de água fria, mas sinto que o que você está propondo é, na prática, inviável. E por se tratar de segurança da informação, esse post pode acabar sendo perigoso por passar uma falsa sensação de segurança. Vamos a alguns pontos importantes:

  1. O link não expira de fato – O que está sendo feito é um controle na sessão do navegador para mostrar uma tela diferente após o primeiro acesso. Mas basta abrir o mesmo link em outro navegador ou numa aba anônima para ter acesso novamente, quantas vezes quiser.

  2. Você afirma não ter backend, mas está usando Next.js na Vercel – Isso já envolve server-side rendering, o que implica na existência de um servidor. Inclusive, ao inspecionar a aba Network no navegador, é possível ver claramente que os dados são trafegados pelo backend (ainda que, aparentemente, não sejam salvos – espero). Seguem prints que comprovam:
    https://ibb.co/202D6xbk
    https://ibb.co/9kR8fFLz

  3. Toda a lógica de criptografia está exposta no navegador – Isso significa que ela pode ser facilmente extraída. Fiz um teste e levei menos de 10 minutos para replicar o funcionamento localmente. Você estava logando tudo no console, o que facilitou ainda mais a identificação dos trechos relevantes. Prints:
    https://ibb.co/BVxwWnbf
    https://ibb.co/TDNkfmMJ

Se fosse algo com menor impacto, eu sugeriria melhorias. Mas nesse caso, acredito sinceramente que o produto, da forma como foi idealizado, é tecnicamente inviável de ser seguro.

3

Achei muito boa a ideia. Acho que eu usaria em algum momento.

Seria legal também se criar um encurtador de url, geralmente as pessoas que mandam links com URL desconhecida e grande eu nem clico. Talvez isso ajudaria no sucesso da aplicação.

1

Po, excelente valeu pela idéia
Só me liguei agora que o link criptografado tem essa cara de meio "suspeito"
Não faço idéia de como vou fazer funcionar mas vou procurar saber kkkkkkkkkkk

0
0

Já pode ser usado no próximo Missão Impossível. Pode até mostrar uma fumaça após a leitura e aquele famoso áudio: "This message will self destruct in 5 seconds."