Files
Frida---Fred/SECURITY.md

116 lines
3.6 KiB
Markdown

# 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.