---
title: "Allgemeine Optionen"
manual: "HTTP Guard"
version: "0.1.4"
permalink: "https://docs.typo3.org/permalink/netresearch/nr-http-guard:configuration-options@0.1.4"
source: "Configuration/Options.rst"
rendered: "2026-10-18T14:31:43+00:00"
---

# Allgemeine Optionen {#configuration-options}

Alle Werte sind relativ zu `EXTCONF.nr_http_guard` angegeben.
Fehlende Felder erhalten die unten genannten Defaults.

## Modus und Adressen {#configuration-mode}

-   **schemaVersion**

    -   *Type:* integer
    -   *Default:* 1

    Nur Schema 1 wird akzeptiert.

-   **mode**

    -   *Type:* string
    -   *Default:* 'enforce'

    `enforce` kontrolliert den Transport und blockiert Ablehnungen.
    `observe` bewertet und protokolliert, blockiert jedoch keine
    zusätzlichen Anfragen und liefert keine überprüfte Transportbindung.
    `disabled` deaktiviert die zusätzliche Kontrolle. Der Modus
    wechselt bei Fehlern niemals automatisch. Bestehende Core-/Vault-Prüfungen
    bleiben im jeweiligen Adapter wirksam.

-   **deniedCidrs**

    -   *Type:* list\<string>
    -   *Default:* \[\]

    Zusätzliche Betreiber-Sperren für IPv4 oder IPv6. Diese Netze werden auch
    mit gültigem Endpoint-Profil nicht freigegeben. Ein leerer Wert entfernt
    keine mitgelieferte Sperre. IPv4-mapped IPv6-CIDRs werden nicht akzeptiert;
    dafür ist die entsprechende IPv4-CIDR zu konfigurieren.

-   **endpoints**

    -   *Type:* map\<string, array>
    -   *Default:* \[\]

    Höchstens 128 benannte Profile. Sämtliche Profilfelder stehen unter
    [Endpoint-Profile](https://docs.typo3.org/permalink/netresearch/nr-http-guard:configuration-endpoints@0.1.4).

## Resolver {#configuration-resolver}

-   **resolver.staticHosts**

    -   *Type:* map\<string, list\<string>>
    -   *Default:* \[\]

    Exakte kanonische Hostnamen mit vollständiger, nicht leerer IP-Liste.
    Keine Wildcards, IP-Hosts als Schlüssel oder Betriebssystem-Suchdomänen.
    Statische Antworten passieren dieselbe Adress- und Endpoint-Prüfung wie
    DNS-Antworten. Ein statischer Eintrag erteilt keine eigene Freigabe.

-   **resolver.cacheTtlSeconds**

    -   *Type:* integer
    -   *Default:* 5

    Bereich 0 bis 5 Sekunden. Null deaktiviert den DNS-Memo-Cache. Verwendet
    wird höchstens die kleinste verbleibende TTL der vollständigen Antwort
    und CNAME-Kette. Negative oder unvollständige Antworten werden nicht
    positiv zwischengespeichert.

-   **resolver.cacheMaxHosts**

    -   *Type:* integer
    -   *Default:* 32

    Bereich 1 bis 1024. Obergrenze positiver Hosteinträge je Resolverinstanz.
    Bei vollem Cache wird der älteste Eintrag entfernt.

-   **resolver.maxAddresses**

    -   *Type:* integer
    -   *Default:* 64

    Bereich 1 bis 64. Eine größere Antwort wird insgesamt abgelehnt und nicht
    auf die ersten erlaubten Kandidaten gekürzt.

-   **resolver.maxCnameHops**

    -   *Type:* integer
    -   *Default:* 8

    Bereich 0 bis 8. Zyklen und längere Ketten werden abgelehnt. Null verbietet
    das Folgen einer CNAME-Weiterleitung.

## Redirects und TLS {#configuration-redirect-tls}

-   **redirects.max**

    -   *Type:* integer
    -   *Default:* 5

    Bereich 0 bis 10. Obergrenze für die unterstützten Redirect-Pfade.
    Endpoint-Profile können Redirects zusätzlich ganz verbieten. PSR-18
    `sendRequest()` folgt unabhängig davon keinem Redirect.

-   **tls.requireVerification**

    -   *Type:* boolean
    -   *Default:* false

    Bei `true` darf der aufrufende Client TLS-Verifikation nicht
    abschalten. Der Default `false` schaltet TLS-Verifikation nicht
    selbst aus: Der Transport verwendet normalerweise `verify=true`,
    lässt aber die ausdrücklich konfigurierte SDK-Option
    `verify=false` zu. `doctor` meldet den fehlenden
    Policy-Zwang als Warnung. Für interne HTTPS-Ziele ein korrektes CA-Bundle
    und `requireVerification=true` verwenden.

## Protokollierung {#configuration-logging}

-   **logging.allowedSampleRate**

    -   *Type:* integer|float
    -   *Default:* 0

    Endliche Zahl zwischen 0 und 1. Anteil protokollierter erlaubter
    Entscheidungen; null Prozent ist der Default. Ablehnungszähler bleiben
    auch bei gedrosselten Logereignissen erhalten.

-   **logging.hostMode**

    -   *Type:* string
    -   *Default:* 'hash'

    `hash` pseudonymisiert den Host mit dem konfigurierten HMAC-Key.
    Ohne Key wird der Host weggelassen. `plain` protokolliert den
    kanonischen Host im Klartext und ist eine bewusste Betreiberentscheidung.
    Pfad, Query und vollständige URL werden in beiden Modi nicht protokolliert.

-   **logging.hostHmacKeyEnv**

    -   *Type:* string|null
    -   *Default:* null

    Name einer echten Prozess-Umgebungsvariable, die den HMAC-Key enthält.
    Der Variablenname besteht aus ASCII-Buchstaben, Ziffern und Unterstrich,
    beginnt mit Buchstabe oder Unterstrich und hat höchstens 128 Zeichen.
    Der Key selbst gehört nicht in das Policyarray oder einen Request.

-   **logging.denyRateLimitPerMinute**

    -   *Type:* integer
    -   *Default:* 60

    Bereich 1 bis 10000. Drosselt Ablehnungsereignisse für Logs,
    nicht die Durchsetzung der Policy. Das Ereignisformat steht unter
    [Entscheidungsprotokolle](https://docs.typo3.org/permalink/netresearch/nr-http-guard:operations-logging@0.1.4).
