[[..:start|zurück]]
# Zugriffsschutz – Bewerbungsnachweis
## Ziel des Zugriffsschutzes
Die Anwendung zur Bewerbungsverwaltung enthält **personenbezogene Daten**, interne Notizen sowie vertrauliche Dokumente (Anschreiben, Rückmeldungen, Absagen).
Ziel des Zugriffsschutzes ist es:
* unbefugten Zugriff zu verhindern
* die Anwendung ohne zusätzliche Login-Logik abzusichern
* eine robuste, wartungsarme Lösung einzusetzen
Es wurde bewusst **keine eigene Anmeldeseite** implementiert.
---
## Gewählte Lösung
Der Zugriffsschutz erfolgt über **HTTP Basic Authentication** mittels Apache `.htaccess`.
### Gründe für diese Entscheidung
* bewährte, seit Jahrzehnten eingesetzte Technik
* keine Abhängigkeit von PHP oder Datenbank
* Schutz greift bereits vor der Anwendung
* auch bei PHP-Fehlern oder Wartung aktiv
* sehr geringer Wartungsaufwand
Für eine private Eigenanwendung ist diese Lösung **angemessen, stabil und ausreichend**.
---
## Technische Umsetzung
### 1. Passwortdatei
Die Zugangsdaten werden in einer Passwortdatei gespeichert, die **außerhalb des Webroots** liegt:
```text
/etc/apache2/htpasswd/bewerbungen.htpasswd
```
Die Datei enthält gehashte Passwörter (bcrypt/MD5 je nach Apache-Version).
### Benutzer anlegen
```bash
sudo htpasswd -c /etc/apache2/htpasswd/bewerbungen.htpasswd lars
```
Weitere Benutzer können später ergänzt werden:
```bash
sudo htpasswd /etc/apache2/htpasswd/bewerbungen.htpasswd weitereruser
```
---
### 2. .htaccess-Datei
Im Wurzelverzeichnis der Anwendung:
```text
/var/www/html/bewerbungen/.htaccess
```
befindet sich folgende Konfiguration:
```apache
AuthType Basic
AuthName "Geschuetzter Bereich – Bewerbungsnachweise"
AuthUserFile /etc/apache2/htpasswd/bewerbungen.htpasswd
Require valid-user
```
Diese Regel schützt **alle Unterverzeichnisse**:
* `/public/`
* `/app/`
* `/storage/`
---
### 3. Apache-Konfiguration
Damit `.htaccess` ausgewertet wird, ist in der Apache-Konfiguration folgendes erlaubt:
```apache
AllowOverride All
```
Nach Änderungen erfolgt ein Reload des Webservers:
```bash
sudo systemctl reload apache2
```
---
## Verhalten im Betrieb
* Beim Aufruf der Anwendung fordert der Browser Benutzername und Passwort an
* Ohne gültige Zugangsdaten kein Zugriff
* Nach erfolgreicher Anmeldung funktioniert die Anwendung unverändert
* Druckansicht und PDF-Erstellung bleiben möglich
Die Zugangsdaten werden vom Browser zwischengespeichert, bis dieser geschlossen wird.
---
## Sicherheitsbewertung
### Vorteile
* sehr geringer Angriffsvektor
* kein Login-Code in PHP
* kein Session-Handling notwendig
* Schutz auch für hochgeladene Dokumente
* kompatibel mit Reverse Proxies (Traefik)
### Einschränkungen
* kein Rollen- oder Rechtemodell
* kein Protokoll über Benutzeraktivitäten
* Zugangsdaten werden vom Browser verwaltet
Diese Einschränkungen sind für den vorgesehenen Einsatzzweck **akzeptabel**.
---
## Erweiterungsmöglichkeiten (optional)
Bei Bedarf kann der Zugriffsschutz erweitert werden, z. B.:
* Kombination aus Benutzer **oder** internem Netzwerk
* zeitweise Deaktivierung für Wartung
* spätere Ablösung durch eine Applikationsanmeldung
Beispiel für Zugriff aus internem Netz **oder** mit Passwort:
```apache
Require ip 192.168.0.0/16
Require valid-user
```
---
## Zusammenfassung
Der Zugriffsschutz:
* schützt alle Inhalte zuverlässig
* ist unabhängig von der Anwendung
* erfordert keine zusätzliche Logik
* ist wartungsarm und transparent
Er erfüllt die Anforderungen an Datenschutz und Zugriffskontrolle für eine **private Bewerbungsverwaltung** vollständig.