Segurança

Este site foi desenhado para expor trabalho técnico sem acrescentar superfície desnecessária. Aqui fica o que está em vigor, para quem quiser verificar.

Modelo de ameaça

A arquitetura — estática, sem contas nem sessões, com o pouco que precisa mesmo de servidor (honeypot, verificador de passwords) isolado num Worker à parte — está descrita em Este Site. Para o modelo de ameaça, o que importa é a consequência: a superfície de ataque fica mínima. O que interessa proteger é a integridade (não servir código adulterado) e a privacidade de quem visita — é aí que as camadas abaixo se concentram.

Isto é o modelo — o que tenta mesmo entrar, ao vivo (honeypot e o que a Cloudflare trava na zona), está no hub, em «Este site, em números», com detalhe em Honeypot e Cloudflare.

A segurança aqui é uma faceta do projeto que serve este site — o modelo de ameaça e as decisões de arquitetura por trás dela estão contados na página do projeto.

Cabeçalhos e porquê

O que é enviado em cada resposta, e a razão de ser:

Content-Security-Policyscript-src 'self' e style-src 'self', sem 'unsafe-inline': zero JavaScript ou CSS inline no site inteiro, só código do próprio domínio executa. JavaScript injetado não executa. É uma das defesas centrais contra XSS.
Strict-Transport-SecurityForça HTTPS no browser durante 2 anos, mesmo que alguém tente rebaixar para HTTP.
X-Frame-Options: DENYImpede que o site seja embebido noutro (anti-clickjacking), a par de frame-ancestors na CSP — para browsers antigos que não suportem a diretiva.
X-Content-Type-Options: nosniffImpede o browser de adivinhar o tipo de um ficheiro e executá-lo como algo que não é.
Referrer-PolicyNão vaza o caminho completo desta página para sites externos ao seguir uma ligação.
Permissions-PolicyDesliga APIs de browser que o site não usa (câmara, micro, geolocalização, pagamentos, USB).
Cross-Origin-Opener-PolicyIsola o contexto de navegação (window/tab) de outras origens — impede que uma janela de outro site controle esta.
Cross-Origin-Embedder-PolicySó carrega recursos de outras origens que autorizem explicitamente (CORP/CORS) — parte do isolamento cross-origin, a par de COOP.
Cross-Origin-Resource-PolicyImpede que outros sites carreguem os recursos deste directamente — completa o trio cross-origin, os mesmos nove cabeçalhos exigidos no contrato das Provas.

Privacidade e dados

Não há cookies, analytics nem scripts de terceiros. As ferramentas client-side (subnets, hashes, encoder, passwords, cabeçalhos de email, EXIF, análise de CSP, laboratório de passkeys) processam tudo no teu browser — nenhum dado sai da máquina. As duas ferramentas que falam com o Worker (verificador de passwords, espelho) dizem-no explicitamente e estão identificadas com um badge no índice de ferramentas. A Cloudflare, como infraestrutura que serve o site, regista por omissão os logs de conexão padrão (IP, User-Agent) de qualquer pedido — não é algo que este site adicione, mas não o escondo: é a mesma exposição de qualquer site atrás de um CDN.

Cadeia de entrega

O código que chega ao teu browser passa por uma cadeia de verificações a cada push: as dependências são analisadas por vulnerabilidades conhecidas e por pacotes maliciosos, os segredos são travados antes de entrarem, os scripts do lado do cliente passam por SAST, e os próprios workflows são auditados. As GitHub Actions estão pinadas por digest SHA e as dependências mantidas pelo Renovate. O detalhe — que ferramenta apanha o quê — está nas Provas.

Como reportar

Encontraste algo? A política de contacto para divulgação responsável está publicada em formato legível por máquinas:

Transparência verificável

Nada aqui é para acreditares — é para verificares. Reuni as provas num só sítio: o hash do último commit, o contrato de cabeçalhos (CSP incluída) e os workflows de CI, por push, cron ou tag.