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