116 lines
3.6 KiB
Markdown
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.
|