Die PHP Security Advisories Database verweist auf bekannte Sicherheitslücken in verschiedenen PHP-Projekten und Bibliotheken. Diese Datenbank darf nicht als primäre Informationsquelle für Sicherheitsprobleme dienen, sie ist nicht maßgebend für irgendeine referenzierte Software, ermöglicht jedoch die Zentralisierung von Informationen zur Vereinfachung und einfachen Nutzung.
Bei der PHP-Datenbank mit Sicherheitshinweisen handelt es sich um kostenlose und unbelastete Software, die öffentlich zugänglich gemacht wird.
Um Ihre Anwendungen auf Schwachstellen zu prüfen, sollten Sie neben manuellen Prüfungen auch das Local CLI-Tool verwenden:
local-php-security-checker --path=/path/to/composer.lock
TIPP : Wenn Sie Github verwenden, können Sie die Github-Aktion PHP Security Checker verwenden, um beim Pushen von Code automatisch nach Schwachstellen zu suchen.
Das Veröffentlichen von Sicherheitshinweisen ist so einfach wie möglich:
Sie können einen neuen Eintrag beisteuern, indem Sie einen Pull-Request senden oder eine Datei direkt über die Github-Schnittstelle erstellen;
Erstellen Sie ein Verzeichnis basierend auf dem Composer-Namen der Software, bei der das Sicherheitsproblem besteht (verwenden Sie beispielsweise symfony/http-foundation
für ein Problem in der Symfony HttpFoundation-Komponente).
Jedes Sicherheitsproblem muss in einer Datei gespeichert werden, deren Name die CVE-Kennung (bevorzugt) oder das Datum, an dem das Sicherheitsproblem bekannt gegeben wurde, gefolgt von einem Inkrement (z. B. 2012-12-12-1
) ist.
Die Datei liegt im YAML-Format vor und muss folgende Einträge enthalten (Beispiele finden Sie in den vorhandenen Einträgen):
title
: Ein Text, der das Sicherheitsproblem in wenigen Worten beschreibt;
link
: Ein Link zur offiziellen Ankündigung des Sicherheitsproblems (HTTPS-Links werden gegenüber HTTP-Links bevorzugt);
reference
: Eine eindeutige Referenz zur Identifizierung der Software (das einzige unterstützte Schema ist composer://
gefolgt von der Composer-ID);
branches
: Ein Hash der betroffenen Branches, wobei der Name der Branch-Name ist (z. B. 2.0.x
) und der Wert ein Hash mit den folgenden Einträgen ist:
time
: Das Datum und die Uhrzeit in UTC, als das Sicherheitsproblem behoben wurde, oder null, wenn das Problem noch nicht behoben wurde (meistens das Datum des Merge -Commits, das das Problem im folgenden Format behoben hat: 2012-08-27 19:17:44
) – diese Informationen müssen so genau wie möglich sein, da sie zur Feststellung dienen, ob ein Projekt betroffen ist oder nicht;
versions
: Ein Array von Einschränkungen, die betroffene Versionen für diesen Zweig beschreiben (dies ist das gleiche Format wie das für Composer verwendete – ['>=2.0.0', '<2.0.17']
).
Wenn Sie über eine CVE-Kennung verfügen, fügen Sie diese unter dem cve
-Schlüssel hinzu.
Stellen Sie sicher, dass Ihre Datei validiert wird, indem Sie php -d memory_limit=-1 validator.php
im Stammverzeichnis dieses Projekts ausführen. Dieses Skript benötigt einige Abhängigkeiten, um über Composer installiert zu werden. Daher müssen Sie vorher composer install
ausführen.
Wenn betroffener Code über verschiedene Composer-Einträge verfügbar ist (z. B. wenn Sie schreibgeschützte Teilbaumaufteilungen eines Hauptrepositorys haben), duplizieren Sie die Informationen in mehreren Dateien.