Sicherheitshärtung: CSP, Client-IP, Rate Limits und Abhängigkeiten #15

Closed
opened 2026-10-16 05:55:09 +00:00 by Nick.Rosenloecher · 0 comments
Owner

Ziel

Schreibende Endpunkte und Adminbereich schützen, Rate Limits nicht über gefälschte Header umgehen lassen, bekannte Lücken in Abhängigkeiten schließen.

Umgesetzt

  • Content-Security-Policy mit Nonce und strict-dynamic, HSTS, X-Frame-Options (src/proxy.ts, erster Commit)
  • Same-Origin- und JSON-Pflicht für schreibende Endpunkte (403 bzw. 415), serverseitige Validierung mit Zod
  • Client-IP nicht aus X-Real-IP, Better Auth bekommt die IP nur als Server-Wert x-artista-client-ip (f75a5f7, 12.10.2026)
  • Eigene Rate Limits zählen IPv6 je /64-Netz (e6fa383)
  • CF-Connecting-IP nur als öffentliche Unicast-Adresse, X-Real-IP ohne X-Forwarded-For nur außerhalb der Produktion (5a88f3d)
  • High-Advisories geschlossen: next 16.3.8, sharp 0.35.5, source-map-js, mysql2, deepmerge-ts (f29dbcf, 14.10.2026); pnpm audit --prod --audit-level high läuft seitdem in der CI

Abhängigkeiten / Blocker

Der Abhängigkeits-Fix f29dbcf steckt im Image sha-0421d7d; ob dieses ausgerollt ist, ist nicht belegt (#21).

Grundlage

docs/ARCHITEKTUR.md (ADR-9), tests/client-ip.test.ts, Cluster-Audit vom 12.10.2026 (Regel für die Client-IP hinter Cloudflare und Traefik).

Status

Code: ja · Geprüft: ja (Tests, CI) · Gemergt: ja · Produktiv: teilweise (bis 5a88f3d belegt ausgerollt, f29dbcf unbekannt)
Stand: 2026-10-16 (Quelle: git origin/main 9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)

## Ziel Schreibende Endpunkte und Adminbereich schützen, Rate Limits nicht über gefälschte Header umgehen lassen, bekannte Lücken in Abhängigkeiten schließen. ## Umgesetzt - [x] Content-Security-Policy mit Nonce und `strict-dynamic`, HSTS, X-Frame-Options (`src/proxy.ts`, erster Commit) - [x] Same-Origin- und JSON-Pflicht für schreibende Endpunkte (403 bzw. 415), serverseitige Validierung mit Zod - [x] Client-IP nicht aus `X-Real-IP`, Better Auth bekommt die IP nur als Server-Wert `x-artista-client-ip` (`f75a5f7`, 12.10.2026) - [x] Eigene Rate Limits zählen IPv6 je /64-Netz (`e6fa383`) - [x] `CF-Connecting-IP` nur als öffentliche Unicast-Adresse, `X-Real-IP` ohne `X-Forwarded-For` nur außerhalb der Produktion (`5a88f3d`) - [x] High-Advisories geschlossen: next 16.3.8, sharp 0.35.5, source-map-js, mysql2, deepmerge-ts (`f29dbcf`, 14.10.2026); `pnpm audit --prod --audit-level high` läuft seitdem in der CI ## Abhängigkeiten / Blocker Der Abhängigkeits-Fix `f29dbcf` steckt im Image `sha-0421d7d`; ob dieses ausgerollt ist, ist nicht belegt (#21). ## Grundlage `docs/ARCHITEKTUR.md` (ADR-9), `tests/client-ip.test.ts`, Cluster-Audit vom 12.10.2026 (Regel für die Client-IP hinter Cloudflare und Traefik). ## Status Code: ja · Geprüft: ja (Tests, CI) · Gemergt: ja · Produktiv: teilweise (bis 5a88f3d belegt ausgerollt, f29dbcf unbekannt) Stand: 2026-10-16 (Quelle: git origin/main 9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)
Nick.Rosenloecher added the status/erledigtart/technikprio/hoch labels 2026-10-16 05:55:09 +00:00
Sign in to join this conversation.