---
title: "ADR-0012: Stabile Ablehnungsgründe ohne neue Secret-Leaks"
manual: "HTTP Guard"
version: "0.1.4"
permalink: "https://docs.typo3.org/permalink/netresearch/nr-http-guard:adr-0012@0.1.4"
source: "Adr/ADR-0012-ErrorsAndObservability.rst"
rendered: "2026-10-18T14:31:43+00:00"
---

# ADR-0012: Stabile Ablehnungsgründe ohne neue Secret-Leaks {#adr-0012}

-   *Status:* Historischer Vorschlag (Original: Vorgeschlagen)
-   *Datum:* 2026-10-08
-   *Entscheidungsträger im Original:* Projektverantwortliche Architektur/Security; Freigabe noch ausstehend
-   *Anforderungen:* HG-031, HG-032, HG-033, HG-034, HG-035
-   *Ablösung im Original:* keine; neue Entscheidung für das vorgeschlagene Produkt
-   *Originalquelle:* [Unveränderter ADR-0012](https://github.com/netresearch/typo3_http_guard/blob/3f929ae8794ca04ab3dd25627e94d601a2db23e0/specification/adr/ADR-0012-fehler-und-beobachtbarkeit.md)

> [!NOTE]
> Dieser ADR gibt den vollständigen Vorschlag vom 2026-10-08 wieder. Status,
> ausstehende Freigaben und geplante Tests beschreiben diesen Originalstand.
> Die aktuelle Alpha-Arbeit ist vom Nutzer freigegeben. Den heutigen
> Paketaufbau beschreibt [ADR-0015: Eine installierbare Extension](https://docs.typo3.org/permalink/netresearch/nr-http-guard:adr-0015@0.1.4); für das aktuelle
> Sicherheitsverhalten und die ausgeführten Nachweise gelten [Schutzmodell und Grenzen](https://docs.typo3.org/permalink/netresearch/nr-http-guard:security@0.1.4)
> und [Dokumentierte Prüfstände](https://docs.typo3.org/permalink/netresearch/nr-http-guard:verification-report@0.1.4).

## Kontext {#adr-0012-context}

Ein Sicherheitsguard braucht Diagnose, kann aber durch Logs selbst Credentials
offenlegen. URLs können Querytokens tragen; Requests enthalten Bodies, Cookies
und Authheader. Ein nach Versand ausgeführter Statistikcallback ist außerdem
keine präventive Verbindungskontrolle. \[S04, S08, S15\]

## Entscheidung {#adr-0012-decision}

Die Bibliothek liefert feste Reason-Codes mit typisierter Exceptionoberfläche.
Synchrone und Promise-basierte Aufrufe unterscheiden sich nicht in der
Policyentscheidung. Policyfehler werden nicht als normale Netzwerktimeouts
getarnt. PSR-18 erkennt sie als Clientfehler; der enthaltene Request bleibt
gegebenenfalls ein sensitives Objekt.

Telemetrie enthält Modus, Entscheidung, Profil-/Policykennung, Adressklasse,
Scheme/Port, Resolverquelle und Korrelation. Keine Bodies, Headerwerte,
URLpfade, Queries oder kompletten Exceptions. Hostanzeige ist separat
konfiguriert; pseudonyme Hostwerte verwenden einen Betreiber-HMAC-Schlüssel,
keinen öffentlich erratbaren Hash als angebliche Anonymisierung. Metriklabels
bleiben niedrigkardinal.

Loggerfehler dürfen nie aus Deny ein Allow machen. Rate-Limits reduzieren
Logfluten, nicht Denialzähler. Diagnosekommandos senden keine
Probe-HTTP-Requests. `on_stats` darf eine Abweichung nachträglich melden,
ersetzt aber niemals den Plan/Pinschutz.

## Verworfene Alternativen {#adr-0012-rejected-alternatives}

**Vollständige Requests zur Fehlersuche loggen:** schafft Exfiltrationspfad.
**Jede Ablehnung als Angriff etikettieren:** verwechselt Tippfehler, DNSprobleme
und Missbrauch. **Logausfall generell als HTTP-Deny:** unnötige globale
Verfügbarkeitskopplung; Vaultaudit kann separat strenger sein.

## Konsequenzen {#adr-0012-consequences}

Betrieb kann Ursachen erkennen, ohne Geheimnisse offenzulegen. Tiefere
Fehlersuche erfordert gezielte synthetische Reproduktion. Andere
Projektmiddlewares bleiben für ihre eigenen Logs verantwortlich; der Guard kann
deren Telemetrie nicht rückwirkend bereinigen.

## Nachweis und Abnahme {#adr-0012-verification-and-acceptance}

T062, T063, T064, T065, T067, T068. Details und erwartete Ergebnisse stehen in
[06 Tests und Abnahme](https://github.com/netresearch/typo3_http_guard/blob/3f929ae8794ca04ab3dd25627e94d601a2db23e0/specification/specs/06-verification.md). Diese Tests sind spezifiziert, nicht im Rahmen dieser
Dokumentlieferung ausgeführt.

## Anlass für Neubewertung {#adr-0012-reassessment-trigger}

Neue Telemetriefelder werden vor Aufnahme auf Geheimnisgehalt und Kardinalität
geprüft. Ein kompletter Requestdump ist kein zulässiger Debugkomfort.

## Zugehörige Dokumente {#adr-0012-related-documents}

[Produktanforderungen](https://github.com/netresearch/typo3_http_guard/blob/3f929ae8794ca04ab3dd25627e94d601a2db23e0/specification/specs/01-product-requirements.md), [Sicherheitsmodell](https://github.com/netresearch/typo3_http_guard/blob/3f929ae8794ca04ab3dd25627e94d601a2db23e0/specification/specs/02-security-model.md), [Architektur](https://github.com/netresearch/typo3_http_guard/blob/3f929ae8794ca04ab3dd25627e94d601a2db23e0/specification/specs/03-architecture.md), [Quellen S01-S23](https://github.com/netresearch/typo3_http_guard/blob/3f929ae8794ca04ab3dd25627e94d601a2db23e0/specification/specs/08-evidence-and-sources.md),
[ADR-Index](https://docs.typo3.org/permalink/netresearch/nr-http-guard:adr-index@0.1.4).
