PHP 安全建議資料庫引用了各種 PHP 專案和函式庫中的已知安全漏洞。該資料庫不得作為安全問題的主要資訊來源,它對於任何引用的軟體都不具有權威性,但它允許集中資訊以方便和輕鬆使用。
PHP 安全建議資料庫是免費且不受阻礙的軟體,發佈到公共領域。
除了手動檢查之外,要檢查應用程式中的漏洞,您應該使用本機 CLI 工具:
local-php-security-checker --path=/path/to/composer.lock
提示:如果您使用 Github,則可以使用 PHP 安全檢查器 Github Action 在推送程式碼時自動檢查漏洞。
提供安全建議非常簡單:
您可以透過發送拉取請求或直接透過 Github 介面建立文件來貢獻新條目;
根據有安全問題的軟體的 Composer 名稱建立目錄(例如,針對 Symfony HttpFoundation 元件中的問題使用symfony/http-foundation
);
每個安全問題必須保存在一個文件中,該文件的名稱是 CVE 識別碼(首選)或安全性問題宣布的日期,後跟增量(例如2012-12-12-1
);
該文件採用 YAML 格式,並且必須包含以下條目(請參閱現有條目以取得範例):
title
:用幾句話描述安全性問題的文字;
link
:官方安全問題公告的連結(HTTPS 連結優先於 HTTP 連結);
reference
:辨識軟體的唯一引用(唯一支援的方案是composer://
後面接著 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安裝一些依賴項,因此您需要先執行composer install
。
如果某些受影響的程式碼可透過不同的 Composer 條目取得(例如當您具有主儲存庫的唯讀子樹分割時),請在多個檔案中複製資訊。