Audit إصدار PHP هي أداة مريحة للتحقق من إصدار PHP معين بسهولة مقابل قائمة محدثة بانتظام من مآثر CVE والإصدارات الجديدة وتواريخ نهاية الحياة.
تدقيق إصدار PHP ليس: استغلال الكشف/التخفيف ، وتتبع الإصدار الخاص بالبائع ، واستبدال للبقاء على اطلاع على إصدارات PHP واستغلال الأمان.
- سمات
- مثال
- الاستخدام
- عامل ميناء
- CLI
- الاحتجاج المباشر
- قواعد 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 هو طريقة مفضلة وأسهل لاستخدام تدقيق إصدار 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)-راجع تحديثات التحديث لمزيد من التفاصيل.
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
إنتاج رمز خروج إذا تم العثور على أي CVES:
./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 ، ويمكنك استهلاكه مباشرة للاستخدام في أدوات أخرى. إذا اخترت القيام بذلك ، فيرجى احترام ترخيص المشروع عن طريق إعطاء إشعارات الإسناد المناسبة. أيضًا ، أطلب من أي تطبيقات قراءة The lastUpdatedDate و FAIL إذا أصبحت قديمة (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.