À propos du projet

Ce paquet fournit une solution PHP complète pour travailler avec le format security.txt défini dans la RFC 9116. Il permet aux développeurs de créer par programme des fichiers security.txt, d'analyser des fichiers existants et d'effectuer une validation complète de leur contenu et de leur emplacement sur un hôte. Les principales capacités incluent : - Génération : construisez un objet SecurityTxt, ajoutez des contacts, des remerciements, des langues préférées, des dates d'expiration et d'autres champs, puis produisez un fichier texte correctement formaté. - Analyse : chargez security.txt à partir d'une chaîne, d'un résultat récupéré ou d'une URL distante, en extrayant tous les champs et en détectant les lignes mal formées. - Validation : vérifiez qu'un fichier security.txt respecte la spécification, en contrôlant les champs obligatoires, les URL correctes, l'utilisation de HTTPS, la couverture de signature, les redirections, etc. La validation peut être effectuée sur un contenu local ou en récupérant depuis un hôte, avec des rapports détaillés d'erreurs et d'avertissements. - Prise en charge des signatures : créez par programme des signatures OpenPGP en texte clair (nécessite l'extension gnupg) ou utilisez des fichiers statiques pré-signés. La bibliothèque valide les signatures mais ne vérifie pas la confiance dans les clés, laissant cela au chercheur. - Outil CLI : un script en ligne de commande (checksecuritytxt.php) permet une validation rapide de n'importe quel hôte, utile dans les pipelines CI ou GitHub Actions. - Sérialisation JSON : les résultats de la validation ou de la récupération peuvent être encodés en JSON pour la mise en cache, le traitement sans serveur ou la communication entre processus, avec une gestion du format contrôlée par version. - Contrôles de récupération : récupération sécurisée avec des restrictions strictes (HTTPS uniquement, validation IP, limites de redirection, limites de taille, fournisseurs DNS personnalisés et personnalisation de l'agent utilisateur). - Mise en cache : des exemples d'intégrations avec les caches Symfony et Nette permettent de signer et de servir des fichiers security.txt sans recalcul à chaque requête. La bibliothèque est conçue à la fois pour une intégration côté serveur et une utilisation en ligne de commande, offrant de nombreuses options de configuration (mode strict, seuils d'avertissement, gestion d'IPv6, etc.) tout en conservant une API propre et orientée objet. Elle prend en charge PHP 8.5 et versions supérieures, avec des extensions optionnelles pour curl et gnupg afin d'activer la récupération à distance et la vérification de signature.