Об этом проекте
Этот пакет предоставляет полное решение на 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, чтобы включить удалённую выборку и проверку подписей.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.