Audit versi PHP adalah alat kenyamanan untuk dengan mudah memeriksa versi PHP yang diberikan terhadap daftar eksploitasi CVE yang diperbarui secara teratur, rilis baru, dan tanggal akhir kehidupan.
Audit Versi PHP bukan: Eksploitasi Deteksi/Mitigasi, Pelacakan Versi Spesifik Vendor, Pengganti untuk Tetap Terinformasikan tentang Rilis PHP dan Eksploitasi Keamanan.
- Fitur
- Contoh
- Penggunaan
- Buruh pelabuhan
- Cli
- Doa Langsung
- Aturan JSON
- Opsi
- Keluaran
- Tujuan proyek
- Ucapan Terima Kasih & Lisensi
--fail-security untuk menetapkan kode keluar kegagalan jika versi PHP yang diberikan memiliki CVE yang diketahui atau tidak lagi menerima pembaruan keamanan. 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."
}
}
}
Berlari dengan Docker adalah cara yang disukai dan termudah untuk menggunakan audit versi PHP.
Periksa versi PHP tertentu menggunakan Docker:
docker run --rm -t lightswitch05/php-version-audit:latest --version=8.1.1
Periksa versi PHP host menggunakan Docker:
docker run --rm -t lightswitch05/php-version-audit:latest --version=$(php -r 'echo phpversion();')
Jalankan di belakang proxy HTTPS (untuk digunakan pada jaringan terbatas). Membutuhkan pemasangan volume direktori dengan sertifikat tepercaya Anda (dengan ekstensi .crt)-lihat pembaruan-ca-sertifikat untuk lebih jelasnya.
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
Tidak menggunakan Docker? Bukan masalah. Ini adalah beberapa langkah lagi, tetapi mudah dijalankan secara langsung.
Instal paket melalui komposer:
composer require lightswitch05/php-version-audit:~1.0
Jalankan skrip PHP, memeriksa versi run-time dari PHP:
./vendor/bin/php-version-audit
Menghasilkan kode keluar jika ada cves yang ditemukan:
./vendor/bin/php-version-audit --fail-security
Ingin berintegrasi dengan Audit Versi PHP? Itu pasti mungkin. Perhatian kata, ini adalah rilis yang sangat awal. Saya tidak punya rencana untuk melanggar perubahan, tetapi saya juga tidak berkomitmen untuk menjaga antarmuka apa adanya jika ada fitur baru untuk diimplementasikan. Docker/CLI tentu merupakan metode yang disukai daripada doa langsung.
$phpVersionAudit = new lightswitch05PhpVersionAuditApplication(phpversion(), false);
$phpVersionAudit->hasVulnerabilities(); #=> true
$phpVersionAudit->getLatestPatchVersion(); #=> '8.1.1'
Data yang digunakan untuk mengarahkan audit versi PHP secara otomatis diperbarui secara teratur dan di -host di halaman GitHub. Ini adalah daging dan kentang asli audit versi PHP, dan Anda dapat mengkonsumsinya secara langsung untuk digunakan di alat lain. Jika Anda memilih untuk melakukan ini, harap hormati lisensi proyek dengan memberikan pemberitahuan atribusi yang tepat. Juga, saya meminta implementasi apa pun untuk membaca lastUpdatedDate dan gagal jika sudah ketinggalan zaman (2+ minggu). Ini seharusnya tidak terjadi karena diperbarui secara otomatis ... tetapi kita semua tahu betapa rapuhnya perangkat lunak.
Dapatkan versi rilis PHP 8.1 terbaru langsung dari aturan menggunakan Curl dan 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.