ci(quick-261009-p0m): ZAP-Grundpruefung gegen alpha vor Freigaben, erster Lauf
- zap-baseline.sh: passive Aussenpruefung mit festgelegtem ZAP-Abbild, Ziel per ZAP_TARGET (Standard: oeffentliche Adresse von alpha), Anmeldedatei-Weg nur fuer den Ausnahmefall - zap-hooks.py: Spinne fuellt keine Formulare aus und sendet keine (POST=0 lokal bewiesen) - Sicherheitsprotokoll: Abschnitt Pruefung von aussen, erster Lauf direkt gegen die Anwendung (0 hoch, 2 mittel, 6 niedrig, 3 Info), Einordnung und Verlauf - Betriebsanleitung Kapitel 9: Schritt Pruefung von aussen; Entwicklungsanleitung: Abschnitt ZAP; CHANGELOG Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
"""zap-hooks.py -- Haken fuer die ZAP-Grundpruefung (quick-261009-p0m).
|
||||
|
||||
Wird von .gitea/scripts/zap-baseline.sh schreibgeschuetzt in den ZAP-Container
|
||||
eingebunden und mit `--hook=` geladen. Nur Standardbibliothek.
|
||||
|
||||
Aufgaben:
|
||||
1. Die klassische Spinne soll Formulare weder ausfuellen noch absenden. So bleibt
|
||||
die Pruefung rein passiv: es werden nur Seiten abgerufen (GET), nie Daten
|
||||
an die Anwendung geschickt (kein POST).
|
||||
2. Nur wenn die Umgebungsvariable ZAP_BASIC_AUTH gesetzt ist (Anmeldedatei-Weg des
|
||||
Skripts), wird ein Ersetzungsregel fuer den Kopf Authorization eingetragen.
|
||||
Der Wert steht nie in einem Aufruf oder einer Ausgabe.
|
||||
"""
|
||||
import os
|
||||
|
||||
|
||||
def zap_started(zap, target):
|
||||
# Keine Formulare verarbeiten, keine Formulare absenden.
|
||||
zap.spider.set_option_process_form(False)
|
||||
zap.spider.set_option_post_form(False)
|
||||
|
||||
auth = os.environ.get("ZAP_BASIC_AUTH")
|
||||
if auth:
|
||||
zap.replacer.add_rule(
|
||||
description="basicauth",
|
||||
enabled=True,
|
||||
matchtype="REQ_HEADER",
|
||||
matchstring="Authorization",
|
||||
matchregex=False,
|
||||
replacement=auth,
|
||||
initiators="",
|
||||
)
|
||||
Reference in New Issue
Block a user