4.1 KiB
4.1 KiB
HKW Anwälte - Sicherheitsdokumentation
PHPMailer Sicherheitskonfiguration
Wichtige Sicherheitsmaßnahmen implementiert:
1. Konfigurationsdatei-Schutz
config.phpist jetzt außerhalb des Webroots verfügbar.htaccessblockiert direkten Zugriff auf Konfigurationsdateien- Unterstützung für Umgebungsvariablen (.env)
2. Verbesserte Input-Validierung
- XSS-Schutz durch htmlspecialchars
- Header-Injection-Schutz (keine Newlines in E-Mail/Namen)
- Längenbeschränkungen für alle Felder
- Erweiterte Spam-Wort-Blacklist
- E-Mail-Domain-Blacklist
3. Rate Limiting
- Max. 5 E-Mails pro Stunde pro IP
- Hash-basierte Datei-Speicherung mit LOCK_EX
- Zeitbasierte Formular-Validierung (mind. 5 Sek.)
4. reCAPTCHA-Integration
- Erweiterte Validierung mit Timeout
- SSL-Verifizierung aktiviert
- Fehlerbehandlung mit Logging
5. Datei-Upload-Sicherheit
- Maximale Dateigröße: 20 MB
- Erlaubte Dateitypen: PDF, DOC, DOCX, JPG, JPEG, PNG
- Größenvalidierung vor Upload
6. Weitere Sicherheitsmaßnahmen
- Honeypot-Feld gegen Spam-Bots
- CSRF-Token-Unterstützung vorbereitet
- Security Headers in .htaccess
- Fehlerausgabe deaktiviert (nur Logging)
Installation & Konfiguration
1. Umgebungsvariablen einrichten
Erstellen Sie eine .env Datei basierend auf .env.example:
cp .env.example .env
Tragen Sie Ihre echten Zugangsdaten ein:
HKW_SMTP_PASS=Ihr_echtes_Passwort
HKW_RECAPTCHA_SECRET=Ihr_reCAPTCHA_Secret
2. Berechtigungen setzen
# Konfigurationsdatei schützen
chmod 600 config.php
# .env Datei schützen
chmod 600 .env
# Forms-Verzeichnis
chmod 755 forms/
chmod 644 forms/.htaccess
3. config.php außerhalb Webroot verschieben (empfohlen)
# Erstellen Sie ein sicheres Config-Verzeichnis
mkdir -p /home/sebastian/config
# Verschieben Sie die config.php
mv config.php /home/sebastian/config/hkw-config.php
# Passen Sie dann den Pfad in contact.php an (Zeile 12)
4. Apache/Nginx konfigurieren
Apache (.htaccess bereits vorhanden):
- Stellen Sie sicher, dass
AllowOverride Allgesetzt ist
Nginx:
location ~ /(config\.php|\.env|test-.*\.php) {
deny all;
}
Wartung & Updates
PHPMailer aktualisieren
Das Projekt verwendet jetzt PHPMailer 7.0.2 (aktuellste Version vom Januar 2026).
Zum manuellen Update:
cd assets/vendor/phpmailer
# Backup erstellen
cp -r src ../phpmailer-backup
# Neue Version von GitHub herunterladen
wget https://github.com/PHPMailer/PHPMailer/archive/refs/tags/v7.0.2.zip
unzip v7.0.2.zip
# Dateien kopieren...
Oder via Composer (empfohlen):
composer require phpmailer/phpmailer:^7.0
Aktuelle Version: 7.0.2 (Stand: 3. Februar 2026)
Wichtige Änderungen in Version 7.x:
- Verbesserte PHP 8.x Kompatibilität
- Erweiterte Sicherheitsfeatures
- Bessere Error Handling
- Modernisierte Codebase
- Keine Breaking Changes zu 6.x (API-kompatibel)
Logs überprüfen
# PHP Error Log
tail -f /var/log/apache2/error.log
# Custom Error Log (falls konfiguriert)
tail -f /path/to/error.log
Checkliste für Produktivbetrieb
.envDatei mit echten Credentials erstelltconfig.phpaußerhalb Webroot verschoben (optional aber empfohlen)- Berechtigungen auf 600 für sensible Dateien gesetzt
- reCAPTCHA Secret Key eingetragen
- SMTP-Zugangsdaten geprüft
.gitignoreaktiv (.env wird nicht committed)- Test-E-Mail erfolgreich versendet
- Rate Limiting getestet
- Formular-Validierung getestet
- File-Upload getestet
- Error Logging funktioniert
Bekannte Limitierungen
- Rate Limiting: Basiert auf IP-Adresse, kann bei Shared IPs problematisch sein
- Temporäre Dateien: Rate-Limit-Daten werden in
/tmpgespeichert - reCAPTCHA: Benötigt Internetverbindung zu Google-Servern
Support & Updates
- PHPMailer: https://github.com/PHPMailer/PHPMailer
- reCAPTCHA: https://www.google.com/recaptcha/admin
Letzte Aktualisierung: 3. Februar 2026