PHP версия Audit - это удобный инструмент для легкой проверки данной версии PHP на регулярно обновленном списке эксплойтов CVE, новых выпусков и дат окончания жизни.
Аудит PHP версии не является: обнаружение/смягчение эксплуатации, отслеживание версий, специфичное для поставщика, замена для соблюдения информированных в выпусках PHP и эксплойтах безопасности.
- Функции
- Пример
- Использование
- Докер
- Кли
- Прямой вызов
- JSON Правила
- Параметры
- Выход
- Цели проекта
- Благодарности и лицензия
--fail-security , чтобы установить код выхода сбоя, если данная версия PHP имеет известный CVE или больше не получает обновления безопасности. docker run --rm -t lightswitch05/php-version-audit:latest --version=8.0.12
{
"auditVersion": "8.0.12",
"hasVulnerabilities": true,
"hasSecuritySupport": true,
"hasActiveSupport": true,
"isLatestPatchVersion": false,
"isLatestMinorVersion": false,
"isLatestVersion": false,
"latestPatchVersion": "8.0.14",
"latestMinorVersion": "8.1.1",
"latestVersion": "8.1.1",
"activeSupportEndDate": "2022-11-26T00:00:00+0000",
"securitySupportEndDate": "2023-11-26T00:00:00+0000",
"rulesLastUpdatedDate": "2022-01-18T02:13:52+0000",
"vulnerabilities": {
"CVE-2021-21707": {
"id": "CVE-2021-21707",
"baseScore": 5.3,
"publishedDate": "2021-11-29T07:15:00+0000",
"lastModifiedDate": "2022-01-04T16:12:00+0000",
"description": "In PHP versions 7.3.x below 7.3.33, 7.4.x below 7.4.26 and 8.0.x below 8.0.13, certain XML parsing functions, like simplexml_load_file(), URL-decode the filename passed to them. If that filename contains URL-encoded NUL character, this may cause the function to interpret this as the end of the filename, thus interpreting the filename differently from what the user intended, which may lead it to reading a different file than intended."
}
}
}
Работа с Docker - это предпочтительный и простой способ использовать Audit PHP версии.
Проверьте конкретную версию PHP с помощью Docker:
docker run --rm -t lightswitch05/php-version-audit:latest --version=8.1.1
Проверьте PHP -версию хоста, используя Docker:
docker run --rm -t lightswitch05/php-version-audit:latest --version=$(php -r 'echo phpversion();')
Запустите за прокси HTTPS (для использования в ограниченных сетях). Требуется монтирование объема каталога с вашим доверенным сертификатом (с расширением .crt)-см. Обновление Ca-Certificates для получения более подробной информации.
docker run --rm -t -e https_proxy='https://your.proxy.server:port/' --volume /full/path/to/trusted/certs/directory:/usr/local/share/ca-certificates lightswitch05/php-version-audit:latest --version=8.1.1
Не используете Docker? Не проблема. Это еще пара шагов, но так же легко запустить напрямую.
Установите пакет через композитор:
composer require lightswitch05/php-version-audit:~1.0
Выполните скрипт PHP, проверив версию PHP во время выполнения:
./vendor/bin/php-version-audit
Создайте код выхода, если найдено какие -либо CVE:
./vendor/bin/php-version-audit --fail-security
Хотите интегрировать с аудитом PHP версии? Это, безусловно, возможно. Слово осторожно, это очень ранний релиз. У меня нет никаких планов по преодолению изменений, но я также не стремлюсь сохранить интерфейс как есть, если есть новые функции для реализации. Docker/CLI, безусловно, является предпочтительным методом по сравнению с прямым вызовом.
$phpVersionAudit = new lightswitch05PhpVersionAuditApplication(phpversion(), false);
$phpVersionAudit->hasVulnerabilities(); #=> true
$phpVersionAudit->getLatestPatchVersion(); #=> '8.1.1'
Данные, используемые для управления версией PHP, автоматически обновляются на регулярной основе и размещаются на страницах GitHub. Это настоящий мясной ипотат аудита версии PHP, и вы можете употреблять его напрямую для использования в других инструментах. Если вы решите сделать это, пожалуйста, уважайте лицензию проекта, предоставив надлежащие уведомления о атрибуции. Кроме того, я прошу любые реализации прочитать lastUpdatedDate и потерпеть неудачу, если он устарел (2+ недель). Этого не должно происходить, так как это автоматически обновляется ... но мы все знаем, насколько хрупкое программное обеспечение.
Получите последнюю версию выпуска PHP 8.1 непосредственно из правил, используя Curl и JQ:
curl -s https://www.github.developerdan.com/php-version-audit/rules-v1.json | jq '.latestVersions["8.1"]'
usage: php-version-audit [--help] [--version=PHP_VERSION]
[--fail-security] [--fail-support]
[--fail-patch] [--fail-latest]
[--no-update] [--silent]
[--v]
optional arguments:
--help show this help message and exit.
--version set the PHP Version to run against. Defaults to the runtime version. This is required when running with docker.
--fail-security generate a 10 exit code if any CVEs are found, or security support has ended.
--fail-support generate a 20 exit code if the version of PHP no longer gets active (bug) support.
--fail-patch generate a 30 exit code if there is a newer patch-level release.
--fail-latest generate a 40 exit code if there is a newer release.
--no-update do not download the latest rules. NOT RECOMMENDED!
--silent do not write any error messages to STDERR.
--v Set verbosity. v=warnings, vv=info, vvv=debug. Default is error. All logging writes to STDERR.