Sobre o projeto
Este pacote fornece uma solução PHP completa para trabalhar com o formato security.txt definido na RFC 9116. Ele permite que desenvolvedores criem arquivos security.txt programaticamente, analisem arquivos existentes e realizem validação abrangente de seu conteúdo e posicionamento em um host.
Os principais recursos incluem:
- Geração: Crie um objeto SecurityTxt, adicione contatos, agradecimentos, idiomas preferidos, datas de expiração e outros campos, e então produza um arquivo de texto formatado corretamente.
- Análise: Carregue security.txt a partir de uma string, de um resultado obtido ou de uma URL remota, extraindo todos os campos e detectando linhas malformadas.
- Validação: Verifique se um arquivo security.txt atende à especificação, checando campos obrigatórios, URLs corretas, uso de HTTPS, cobertura de assinatura, redirecionamentos e mais. A validação pode ser realizada no conteúdo local ou obtendo de um host, com relatórios detalhados de erros e avisos.
- Suporte a assinatura: Crie assinaturas OpenPGP em texto claro programaticamente (requer extensão gnupg) ou use arquivos estáticos pré-assinados. A biblioteca valida assinaturas, mas não verifica a confiança da chave, deixando isso para o pesquisador.
- Ferramenta de CLI: Um script de linha de comando (checksecuritytxt.php) permite validação rápida de qualquer host, útil em pipelines de CI ou GitHub Actions.
- Serialização JSON: Resultados de validação ou obtenção podem ser codificados em JSON para cache, processamento serverless ou comunicação entre processos, com tratamento de formato controlado por versão.
- Controles de obtenção: Obtenção segura com restrições rigorosas (somente HTTPS, validação de IP, limites de redirecionamento, limites de tamanho, provedores de DNS personalizados e personalização de user-agent).
- Cache: Exemplos de integração com caches Symfony e Nette permitem assinar e servir arquivos security.txt sem recalcular em cada requisição.
A biblioteca foi projetada tanto para integração no lado do servidor quanto para uso em linha de comando, oferecendo amplas opções de configuração (modo estrito, limites de aviso, tratamento de IPv6 etc.) enquanto mantém uma API limpa e orientada a objetos. Ela suporta PHP 8.5 e superior, com extensões opcionais para curl e gnupg para habilitar obtenção remota e verificação de assinatura.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.