Segurança por construção
O Chinaski não depende de você configurar a segurança , o comportamento seguro já vem embutido, e o caminho preguiçoso é o caminho seguro. Esta página explica o que isso significa: proteções que já vêm ativadas, salvaguardas que são estruturais em vez de opcionais, e notas honestas sobre o que ainda exige uma escolha consciente.
Proteções que simplesmente estão ligadas
Quatro padrões que a linha-resumo desta página cita , você recebe os quatro com zero configuração:
- Scripts e estilos verificados , todo asset do admin é verificado por hash (SRI) pelo navegador antes de executar. Uma biblioteca adulterada é recusada, não executada.
- Política de conteúdo estrita , toda resposta do admin carrega uma CSP baseada em nonce: apenas scripts marcados pelo servidor executam, nada é enquadrado por outros sites, e uma lista de recursos do navegador não utilizados (câmera, microfone, geolocalização e companhia) fica desativada. Sem configuração; é simplesmente como as respostas são construídas.
- Nenhuma confiança em IPs forjados , rate limits e bloqueios contam você por um IP de cliente que o servidor consegue realmente verificar. Endereços fornecidos por headers só são acreditados vindos de um proxy confiável; quem conecta diretamente tem o seu endereço verdadeiro.
- Bloqueios que persistem , logins com falha repetidos bloqueiam o IP de origem por janelas crescentes (um minuto, depois cinco, depois trinta), e a contagem sobrevive a reinicializações, então reiniciar não zera um ataque.
Salvaguardas que vêm da forma do sistema
Algumas propriedades de segurança nem são configurações , são consequências da arquitetura:
- O seu site público nunca executa o código do CMS. O site publicado são arquivos simples servidos pelo seu servidor web; logins, formulários e uploads acontecem em uma superfície de administração separada. Uma vulnerabilidade em um não coloca automaticamente os leitores no raio da explosão.
- Nenhum JavaScript em runtime no site público , por construção, não por promessa. Não existe mecanismo pelo qual adicionar um rastreador, um beacon ou um script de terceiros às suas páginas; não há nada para configurar errado.
- Segredos nunca ficam legíveis em texto puro. As credenciais de e-mail, armazenamento em nuvem e integrações são criptografadas no banco de dados com uma chave derivada do segredo mestre da instância; nem a API as retorna.
- Senhas usam um hash moderno e atualizável. O hashing segue uma biblioteca gerenciada, de modo que o esquema possa ser fortalecido ao longo do tempo sem deslogar ninguém nem reescrever contas.
- Privilégios são impostos no servidor. Papéis e restrições de conteúdo por usuário são verificados no servidor para cada ação privilegiada; o navegador não consegue ser convencido a passar por eles.
- Abuso é limitado onde quer que possa acontecer: login, registro, recuperação de senha, envios de formulários e uso da API têm limites por IP ou por chave ativados por padrão, com desacelerações deliberadas para requisições abusivas e URLs honeypot que registram as sondas de scanners.
- O servidor roda encaixotado. O sandboxing do systemd deixa o sistema de arquivos somente leitura fora do diretório próprio da aplicação, bloqueia escalonamento de privilégios e limita memória/CPU; o instalador define permissões de arquivo restritivas como parte da configuração, não como um passo manual posterior.
- O segredo mestre começa legível apenas pelo dono. O arquivo que o guarda é criado sem acesso de grupo ou de outros antes de o servidor rodar pela primeira vez.
- Cada login, falha, bloqueio e sonda de scanner é registrado em forma estruturada e pesquisável , assim "o que aconteceu" tem resposta depois do fato.
Padrões sensatos onde existe escolha
Algumas proteções são padrões em vez de mandatos, e isso é dito com clareza:
- A proteção contra spam em formulários públicos vem ativada para novos formulários (widget de verificação) , você pode desligá-la por formulário, mas precisa escolher isso.
- O autorregistro está desligado. As pessoas não podem criar as próprias contas a menos que você habilite.
- Os cookies são Secure, HttpOnly e SameSite com tempo de vida de 8 horas , administradores são deslogados diariamente de propósito.
- O modo airgap desliga toda chamada de saída que o servidor pudesse algum dia fazer, se a sua instalação precisar poder testemunhar que não telefona para casa.
O que o projeto declara sobre si
Posicionamento honesto e declarado (da própria documentação do projeto):
- É direcionado em parte a "security-focused organizations … where what you don't ship matters as much as what you do."
- Ele "doesn't telephone home": sem telemetria, sem validação de licença, sem dependências de CDN, sem fontes baixadas de mais ninguém.
- A lista dele de dependências pequenas, estáveis e empacotadas no sistema operacional é, em si, a postura de segurança , menos partes, mais velhas e de mudança mais lenta significam uma superfície de ataque menor que a de ecossistemas que adicionam pacotes às centenas.
O princípio da página é simples: a pessoa que esquece de pensar em segurança é a beneficiária padrão. Nada nesta lista é opt-in exceto o que é deliberadamente opt-out-able (a verificação de bot por formulário, o autorregistro, as chaves de airgap) , e a documentação diz a você qual é qual.