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)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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
strict-dynamic, HSTS, X-Frame-Options (src/proxy.ts, erster Commit)X-Real-IP, Better Auth bekommt die IP nur als Server-Wertx-artista-client-ip(f75a5f7, 12.10.2026)e6fa383)CF-Connecting-IPnur als öffentliche Unicast-Adresse,X-Real-IPohneX-Forwarded-Fornur außerhalb der Produktion (5a88f3d)f29dbcf, 14.10.2026);pnpm audit --prod --audit-level highläuft seitdem in der CIAbhängigkeiten / Blocker
Der Abhängigkeits-Fix
f29dbcfsteckt im Imagesha-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
5a88f3dbelegt ausgerollt,f29dbcfunbekannt)Stand: 2026-10-16 (Quelle: git origin/main
9785eb2, Gitea-CI-Läufe und Registry, Memory der Sessions)