# Sicherheitshinweise für Frida & Fred Webseite

## ✅ Implementierte Sicherheitsmaßnahmen

### 1. Geschützte Konfigurationsdatei
- **config.php** enthält sensible Zugangsdaten (SMTP-Passwort)
- Wird durch **.htaccess** vor direktem Zugriff geschützt
- Ist in **.gitignore** und wird NICHT ins Git-Repository committed

### 2. Git-Sicherheit
- `config.php` wird automatisch ignoriert
- Nur `config.php.example` (ohne echte Passwörter) wird ins Repository committed
- Bei neuem Deployment: `config.php.example` kopieren und umbenennen

### 3. Spam-Schutz
- **Honeypot-Feld**: Verstecktes Feld fängt Bots ab
- **Rate-Limiting**: Max. 1 Nachricht pro Minute pro Benutzer
- **CSRF-Token**: Schutz vor Cross-Site-Request-Forgery
- **Server-seitige Validierung**: Alle Eingaben werden geprüft

### 4. Zugriffsbeschränkungen (.htaccess)
- Direkter Zugriff auf `config.php` ist gesperrt
- GET-Requests auf `send-mail.php` sind blockiert (nur POST erlaubt)
- Sensible Dateien (.env, composer.json, .git) sind geschützt

## 🚀 Deployment auf neuem Server

### Schritt 1: Dateien hochladen
Lade alle Dateien AUSSER `config.php` hoch (die ist in .gitignore).

### Schritt 2: config.php erstellen
```bash
cp config.php.example config.php
```

### Schritt 3: Zugangsdaten eintragen
Öffne `config.php` und trage die echten SMTP-Zugangsdaten ein.

### Schritt 4: Berechtigungen setzen (empfohlen)
```bash
chmod 600 config.php  # Nur Besitzer kann lesen/schreiben
```

## 🔒 Best Practices

### Was du TUN solltest:
✅ `config.php` mit restriktiven Berechtigungen (600 oder 640)
✅ Regelmäßig das SMTP-Passwort ändern
✅ HTTPS verwenden (SSL-Zertifikat)
✅ PHP-Error-Logs regelmäßig prüfen
✅ `config.php.example` als Vorlage pflegen

### Was du NICHT tun solltest:
❌ `config.php` ins Git-Repository committen
❌ Passwörter in öffentlichen Dateien speichern
❌ `.htaccess` löschen oder deaktivieren
❌ Debug-Modus in Produktion aktivieren
❌ Passwörter per E-Mail oder unsichere Kanäle teilen

## 📁 Dateistruktur

```
Webseite/
├── config.php              # ❗ NICHT ins Git! (wird ignoriert)
├── config.php.example      # ✅ Vorlage (ohne echte Passwörter)
├── send-mail.php           # Mailer-Script
├── .htaccess              # Zugriffsbeschränkungen
├── .gitignore             # Ignoriert sensible Dateien
├── vendor/                # PHPMailer-Bibliothek
└── ...
```

## 🔐 Zusätzliche Sicherheitsempfehlungen

### 1. Umgebungsvariablen (fortgeschritten)
Noch sicherer: Verwende Umgebungsvariablen statt PHP-Dateien
- Bei Shared Hosting oft nicht verfügbar
- Bei VPS/Dedicated Server: `.env` mit php-dotenv

### 2. Zwei-Faktor-Authentifizierung
Aktiviere 2FA für:
- E-Mail-Account (kontakt@webfarben.net)
- Server/FTP-Zugang
- Git-Repository

### 3. SSL/TLS-Zertifikat
- Stelle sicher, dass HTTPS aktiv ist
- Erzwinge HTTPS-Umleitung in .htaccess

### 4. Regelmäßige Updates
- PHPMailer regelmäßig aktualisieren
- PHP-Version aktuell halten
- Server-Software patchen

## 🆘 Was tun bei Kompromittierung?

Falls das Passwort kompromittiert wurde:

1. **Sofort Passwort ändern** im E-Mail-Account
2. **config.php aktualisieren** mit neuem Passwort
3. **Server-Logs prüfen** auf verdächtige Aktivitäten
4. **Alle Zugriffe prüfen** (FTP, SSH, Admin-Panels)
5. **Optional:** Alle Passwörter rotieren

## 📞 Support

Bei Fragen zur Sicherheit:
- Prüfe die PHP-Error-Logs
- Kontaktiere deinen Hosting-Provider
- Dokumentation von PHPMailer: https://github.com/PHPMailer/PHPMailer

---

**Wichtig:** Diese Datei (SECURITY.md) kann ins Git-Repository committed werden, 
da sie keine sensiblen Informationen enthält.
