Об этом проекте

Этот пакет предоставляет полное решение на PHP для работы с форматом security.txt, определённым в RFC 9116. Он позволяет разработчикам программно создавать файлы security.txt, разбирать существующие и выполнять всестороннюю проверку их содержимого и размещения на хосте. Основные возможности: - Создание: сформируйте объект SecurityTxt, добавьте контакты, благодарности, предпочитаемые языки, даты истечения срока действия и другие поля, затем выведите корректно отформатированный текстовый файл. - Разбор: загружайте security.txt из строки, результата выборки или удалённого URL, извлекая все поля и обнаруживая некорректные строки. - Проверка: убедитесь, что файл security.txt соответствует спецификации, проверяя обязательные поля, правильность URL, использование HTTPS, покрытие подписью, перенаправления и другое. Проверку можно выполнять для локального содержимого или путём выборки с хоста, с подробными отчётами об ошибках и предупреждениях. - Поддержка подписей: создавайте открытые текстовые подписи OpenPGP программно (требуется расширение gnupg) или используйте предварительно подписанные статические файлы. Библиотека проверяет подписи, но не проверяет доверие к ключам, оставляя это исследователю. - Инструмент CLI: командный скрипт (checksecuritytxt.php) позволяет быстро проверить любой хост, что полезно в конвейерах CI или GitHub Actions. - Сериализация JSON: результаты проверки или выборки можно кодировать в JSON для кэширования, бессерверной обработки или межпроцессного взаимодействия, с версионной обработкой формата. - Управление выборкой: безопасная выборка со строгими ограничениями (только HTTPS, проверка IP, лимиты перенаправлений, лимиты размера, настраиваемые DNS-провайдеры и настройка user-agent). - Кэширование: примеры интеграции с кэшами Symfony и Nette позволяют подписывать и отдавать файлы security.txt без пересчёта при каждом запросе. Библиотека предназначена как для серверной интеграции, так и для использования в командной строке, предоставляя обширные параметры конфигурации (строгий режим, пороги предупреждений, обработка IPv6 и т. д.) и сохраняя чистый объектно-ориентированный API. Она поддерживает PHP 8.5 и выше, с необязательными расширениями для curl и gnupg, чтобы включить удалённую выборку и проверку подписей.