Zum Inhalt springen

findings.json-Schema

findings.json ist die maschinenlesbare Fassung des Berichts. Sie enthält dieselben Befunde wie das PDF, nur ohne Umbruch und Satz.

Die Datei gehört ab dem Plan Pro zum Lieferumfang. Im Plan Free gibt es den PDF-Bericht; der Abruf von findings_json antwortet dort mit 402 und dem Code plan_upgrade_required.

Aufbau

Grundgerüst
{
"scan": { "id": "…", "domain": "…", "tier": "active", "context": "shop" },
"counts": { "critical": 1, "high": 2, "medium": 4, "low": 3, "info": 5 },
"findings": [ … ],
"positives": [ … ],
"scope_notes": [ … ]
}

scope_notes nennt die Lücken im Prüfumfang: Werkzeuge, die ausgefallen sind, und Prüfungen, die der Scope-Guard unterdrückt hat. Ein Bericht verschweigt nicht, was er nicht geprüft hat.

Felder eines Befunds

id
uuidPflicht
–
catalog_id
stringPflicht
Stabile Katalogkennung. Der Vergleich zweier Läufe läuft über sie.
report_id
stringPflicht
–
title
stringPflicht
–
severity
enumPflicht
Schweregrad. Etiketten Kritisch · Hoch · Mittel · Niedrig · Hinweis.critical · high · medium · low · info
category
stringPflicht
–
confidence
enumPflicht
Konfidenz eines Befunds. Bei CVE-Zeilen gilt zusätzlich die zweistufige Sprache „bestätigt“ (confirmed) und „möglich“ (candidate), siehe `CveRow.confidence`.confirmed · likely · candidate
status
enumPflicht
–open · fixed · accepted · not_applicable
effort
string
–
effort_level
string
–
owner
string
–
cvss_score
number | null
–
cvss_vector
string | null
–
cwe
string | null
–
description
string
–
impact
string
–
remediation
string
–
remediation_short
string
–
remediation_code
string
–
caveat
string
–
legal_basis
string
Nur bei Datenschutz-Befunden (DSGVO, TDDDG).
references
string[]
–
evidence
object[]
–
cve_rows
object[]
Nur bei `COMPONENT-CVE` und `COMPONENT-CVE-UNPATCHED` gefüllt.
has_confirmed_cve
boolean
–
resolution_note
string
–
resolved_at
string | null
–
acknowledgment
object | null
Die Quittierung, die diesen Befund stillgelegt hat, samt Grund und Ablauf. Fehlt oder ist `null`, wenn `status` von Hand am Lauf gesetzt wurde. `status` allein sagt nicht, ob die Markierung den nächsten Lauf überlebt; dieses Feld zeigt es.

Die Evidenz jedes Befunds ist eigens gehasht:

label
stringPflicht
–
content
stringPflicht
–
command
string | null
–
sha256
stringPflicht
–

Aufzählungswerte

FeldWerte
severitycritical · high · medium · low · info
confidenceconfirmed · likely · candidate
statusopen · fixed · accepted · not_applicable

Die Etiketten im deutschen Bericht lauten Kritisch · Hoch · Mittel · Niedrig · Hinweis. Werten Sie den englischen Schlüssel aus, nicht das Etikett.

Barrierefreiheit

Befunde der Kategorie Barrierefreiheit tragen zusätzlich das Erfolgskriterium und seine Konformitätsstufe (wcag_kriterium, wcag_stufe) sowie die Fundstellen: vorkommen_gesamt, betroffene_seiten und beispiele mit Seite und Element. Aufgeführt sind dieselben drei Beispiele wie im PDF; die vollständige Vorkommensliste ist nicht Teil des Kundendokuments.

Neben den Befunden steht der Block barrierefreiheit mit dem Stand aller 55 Erfolgskriterien der Stufen A und AA, auch derer, die nur ein Mensch beurteilen kann. Vier Werte: verstoßen, zu bestätigen, geprüft, ohne Befund, manuell zu prüfen.

Der Schweregrad bemisst in dieser Kategorie rechtlichen Handlungsbedarf und nicht Angriffsgefahr. Er erreicht deshalb nie critical.

Beispiel

Ein Eintrag aus findings
{
  "report_id": "F-02",
  "catalog_id": "HEADER-HSTS-MISSING",
  "title": "",
  "severity": "critical",
  "category": "",
  "confidence": "confirmed",
  "status": "open",
  "effort_level": "gering",
  "owner": "Hosting"
}