1
Sicherheit
hans edited this page 2026-06-26 09:36:44 +02:00

Sicherheit

Grundprinzip: Token niemals im Frontend

Angular-Apps sind reine Client-Side-Anwendungen. Jeder Token in environment.prod.ts oder im Code landet nach ng build als Klartext in den JS-Bundles und ist für jeden sichtbar, der die DevTools öffnet.

Regel: Der Directus API-Token gehört ausschließlich in den Nginx Proxy Manager.

.gitignore — was niemals ins Repository darf

# Dev-Proxy mit Token
proxy.conf.json

# Dev-Environment mit Token
src/environments/environment.ts

# Build-Output
dist/

# Node-Module
node_modules/

Vorlagen ohne Token werden committed:

  • proxy.conf.example.json
  • src/environments/environment.example.ts

Token-Handling nach Umgebung

Umgebung Token-Quelle Token im Quellcode?
ng serve (Dev) proxy.conf.json (lokal, gitignored) Nein
ng build (Prod) Nginx Proxy Manager Nein
Directus direkt Nie

Token kompromittiert — Sofortmaßnahmen

  1. Directus Admin-UI → SettingsAccess Tokens → Token sofort löschen
  2. Neuen Token erstellen
  3. NPM Advanced Config aktualisieren
  4. proxy.conf.json lokal aktualisieren
  5. Testen ob alter Token wirklich ungültig ist:
curl -H "Authorization: Bearer ALTER_TOKEN" \
  http://directus.neugasse.lan/items/landingpage
# Muss 403 zurückgeben

Directus-Berechtigungen minimal halten

Der API-Token sollte nur Lesezugriff auf die landingpage-Collection haben — kein Schreibzugriff, kein Zugriff auf andere Collections.

In Directus Admin-UI → SettingsRoles & Permissions → Token-Rolle prüfen:

  • landingpage: Read ✓
  • Alle anderen Collections: kein Zugriff

Tasmota-Geräte

  • Steckdosen sind nur im LAN (*.neugasse.lan) erreichbar — kein externer Zugriff möglich
  • Tasmota-WebUI sollte mit Passwort gesichert sein (Configuration → Security)
  • Die HTTP-API der Steckdosen ist unverschlüsselt — ausreichend für LAN-Betrieb

Angriffsvektor-Übersicht

Vektor Risiko Mitigierung
Token im JS-Bundle Hoch NPM-Proxy, kein Token im Code
Token im Git-Repository Hoch .gitignore, Token rotieren
Directus ohne Auth erreichbar Mittel Token erforderlich, Items auf published
Tasmota im Internet erreichbar Niedrig Nur LAN, kein Port-Forward