173 lines
4.1 KiB
Markdown
173 lines
4.1 KiB
Markdown
# HKW Anwälte - Sicherheitsdokumentation
|
|
|
|
## PHPMailer Sicherheitskonfiguration
|
|
|
|
### Wichtige Sicherheitsmaßnahmen implementiert:
|
|
|
|
#### 1. **Konfigurationsdatei-Schutz**
|
|
- `config.php` ist jetzt außerhalb des Webroots verfügbar
|
|
- `.htaccess` blockiert 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`:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
Tragen Sie Ihre echten Zugangsdaten ein:
|
|
```env
|
|
HKW_SMTP_PASS=Ihr_echtes_Passwort
|
|
HKW_RECAPTCHA_SECRET=Ihr_reCAPTCHA_Secret
|
|
```
|
|
|
|
### 2. Berechtigungen setzen
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```bash
|
|
# 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 All` gesetzt ist
|
|
|
|
#### Nginx:
|
|
```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:
|
|
|
|
```bash
|
|
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):
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
- [ ] `.env` Datei mit echten Credentials erstellt
|
|
- [ ] `config.php` außerhalb Webroot verschoben (optional aber empfohlen)
|
|
- [ ] Berechtigungen auf 600 für sensible Dateien gesetzt
|
|
- [ ] reCAPTCHA Secret Key eingetragen
|
|
- [ ] SMTP-Zugangsdaten geprüft
|
|
- [ ] `.gitignore` aktiv (.env wird nicht committed)
|
|
- [ ] Test-E-Mail erfolgreich versendet
|
|
- [ ] Rate Limiting getestet
|
|
- [ ] Formular-Validierung getestet
|
|
- [ ] File-Upload getestet
|
|
- [ ] Error Logging funktioniert
|
|
|
|
---
|
|
|
|
## Bekannte Limitierungen
|
|
|
|
1. **Rate Limiting**: Basiert auf IP-Adresse, kann bei Shared IPs problematisch sein
|
|
2. **Temporäre Dateien**: Rate-Limit-Daten werden in `/tmp` gespeichert
|
|
3. **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
|