База данных рекомендаций по безопасности PHP ссылается на известные уязвимости безопасности в различных проектах и библиотеках PHP. Эта база данных не должна служить основным источником информации по вопросам безопасности, она не является авторитетной для какого-либо программного обеспечения, на которое ссылаются, но позволяет централизовать информацию для удобства и простоты использования.
База данных рекомендаций по безопасности PHP — это бесплатное и ничем не обремененное программное обеспечение, распространяемое в общественное достояние.
Чтобы проверить наличие уязвимостей в ваших приложениях помимо ручных проверок, вам следует использовать инструмент Local CLI:
local-php-security-checker --path=/path/to/composer.lock
СОВЕТ . Если вы используете Github, вы можете использовать действие PHP Security Checker Github для автоматической проверки уязвимостей при отправке кода.
Добавлять рекомендации по безопасности очень просто:
Вы можете внести новую запись, отправив запрос на включение или создав файл непосредственно через интерфейс Github;
Создайте каталог на основе имени Composer программного обеспечения, в котором существует проблема безопасности (например, используйте symfony/http-foundation
для проблемы в компоненте Symfony HttpFoundation);
Каждая проблема безопасности должна быть сохранена в файле, имя которого представляет собой идентификатор CVE (предпочтительно) или дату объявления проблемы безопасности с последующим приращением (например, 2012-12-12-1
);
Файл имеет формат YAML и должен содержать следующие записи (примеры можно найти в существующих записях):
title
: текст, в нескольких словах описывающий проблему безопасности;
link
: ссылка на официальное объявление о проблеме безопасности (ссылки HTTPS предпочтительнее HTTP);
reference
: уникальная ссылка для идентификации программного обеспечения (единственная поддерживаемая схема — composer://
за которым следует идентификатор композитора);
branches
: хеш затронутых ветвей, где имя — это имя ветки (например, 2.0.x
), а значение — хэш со следующими записями:
time
: дата и время в формате UTC, когда проблема безопасности была устранена, или значение NULL, если проблема еще не устранена (в большинстве случаев это дата фиксации слияния , которая устранила проблему, в следующем формате 2012-08-27 19:17:44
) — эта информация должна быть максимально точной, поскольку она используется для определения того, затронут проект или нет;
versions
: Массив ограничений, описывающих затронутые версии для этой ветки (это тот же формат, что и тот, который используется для Composer — ['>=2.0.0', '<2.0.17']
).
Если у вас есть идентификатор CVE, добавьте его под ключ cve
.
Убедитесь, что ваш файл проверен, запустив php -d memory_limit=-1 validator.php
из корня этого проекта. Этот скрипт требует установки некоторых зависимостей через композитор, поэтому вам необходимо предварительно запустить composer install
.
Если некоторый затронутый код доступен через разные записи Composer (например, когда у вас есть разделения поддерева основного репозитория, доступные только для чтения), продублируйте информацию в нескольких файлах.