Für Entwickler, Agenturen und Hoster

PHP2Shell-Prüfung per API

Binden Sie den PHP2Shell-Check in eigene Skripte, Monitoring oder Kundenportale ein. Eine Anfrage mit der Webadresse, eine JSON-Antwort mit PHP-Version, erkannter Software und Bewertung.

Kostenlos mit Google-Konto. Die Anmeldung legt Ihr Konto automatisch an.

Schon registriert? Mit demselben Button melden Sie sich an.

Schnellstart

Jede Anfrage braucht Ihren API-Schlüssel im Header Authorization: Bearer ….

curl -X POST https://php2shellcve.de/api/v1/checks \
  -H "Authorization: Bearer p2s_IhrSchluessel" \
  -d url=www.example.com

Mit KI-Assistent einbinden

Kopieren Sie diesen Prompt in Claude Code, Cursor oder einen anderen KI-Assistenten in Ihrem Projekt. Der Assistent baut die Anbindung passend zu Ihrem Code.

Binde in diesem Projekt die PHP2Shell-API von php2shellcve.de ein. Sie prüft, ob eine Website von den PHP-Lücken CVE-2026-109618 und CVE-2026-109619 betroffen ist.

API:
- Basis-URL: https://php2shellcve.de/api/v1
- Authentifizierung: Header "Authorization: Bearer <API-Schlüssel>". Lies den Schlüssel aus der Umgebungsvariable PHP2SHELL_API_KEY, nie fest im Code.
- POST /checks mit Parameter url: prüft eine Website sofort (Antwort 201, JSON).
- POST /batches mit JSON {"title": "...", "urls": ["..."]}: startet eine Sammelprüfung (202). Danach GET /batches/:id abfragen, bis status "done" ist (alle 5 Sekunden).
- Wichtige Felder der Antwort: status (vulnerable, unknown, no_php, patched, error), verdict, php_version, fixed_version, report_url.
- Fehler: 401 ungültiger Schlüssel, 404 unbekannte ID, 429 mit "error": "quota_exceeded" bei überschrittenem Limit.
- Vollständige Doku: https://php2shellcve.de/api

Aufgabe:
1. Sieh dir an, welche Sprache und welche Muster das Projekt nutzt, und baue einen kleinen Client im selben Stil.
2. Behandle Timeouts (Einzelprüfung bis 30 Sekunden) und die Fehlercodes oben sauber.
3. Füge einen Test oder ein kurzes Beispiel hinzu, das die API nicht wirklich aufruft.
4. Frag nach, wenn unklar ist, wo die Prüfung im Projekt verwendet werden soll.

Endpunkte

Methode und PfadZweck
POST /api/v1/checksEine Website prüfen. Parameter url. Antwortet nach wenigen Sekunden mit dem Ergebnis (201).
GET /api/v1/checks/:idGespeicherte Einzelprüfung abrufen.
POST /api/v1/batchesSammelprüfung starten. Parameter urls[] (Liste) und optional title. Antwortet sofort (202); die Prüfung läuft im Hintergrund.
GET /api/v1/batches/:idStatus und Ergebnisse einer Sammelprüfung. status ist pending, running oder done.

Sammelprüfung starten und abfragen

curl -X POST https://php2shellcve.de/api/v1/batches \
  -H "Authorization: Bearer p2s_IhrSchluessel" \
  -H "Content-Type: application/json" \
  -d '{"title": "Kundenseiten", "urls": ["kunde-a.de", "kunde-b.de"]}'

curl https://php2shellcve.de/api/v1/batches/42 \
  -H "Authorization: Bearer p2s_IhrSchluessel"

Beispielantwort einer Einzelprüfung

{
  "id": 17,
  "url": "www.example.com",
  "final_url": "https://www.example.com/",
  "status": "vulnerable",
  "verdict": "Wahrscheinlich betroffen",
  "php_version": "8.3.20",
  "technologies": ["WordPress 6.9"],
  "server": "Apache",
  "php_detected": true,
  "fixed_version": "8.3.36",
  "backport_possible": false,
  "checked_at": "2026-10-23T12:00:00+02:00",
  "report_url": "https://php2shellcve.de/r/…"
}

status ist einer von vulnerable (wahrscheinlich betroffen), unknown (PHP erkannt, Version nicht sichtbar), no_php (kein PHP erkannt, keine Garantie), patched (laut Version gepatcht) oder error (nicht erreichbar).

Grenzen und Fehler

Kostenlos sind bis zu 10 Websites pro Sammelprüfung und 20 Websites pro Stunde möglich, zusammen mit Prüfungen auf der Website. Darüber antwortet die API mit 429 und "error": "quota_exceeded". Ein fehlender oder widerrufener Schlüssel ergibt 401, unbekannte IDs 404.