feat: Website-Rework mit verbessertem Design, Sicherheit und Deployment

- Neue About/Skills-Sektion hinzugefügt
- Verbesserte UI/UX für alle Komponenten
- Enhanced Contact Form mit Validierung
- Verbesserte Security Headers und Middleware
- Sichere Deployment-Skripte (safe-deploy.sh)
- Zero-Downtime Deployment Support
- Verbesserte Docker-Sicherheit
- Umfassende Sicherheits-Dokumentation
- Performance-Optimierungen
- Accessibility-Verbesserungen
This commit is contained in:
2025-11-22 19:24:49 +01:00
parent 498bec6edf
commit 976a6360fd
17 changed files with 1585 additions and 139 deletions

128
SECURITY-CHECKLIST.md Normal file
View File

@@ -0,0 +1,128 @@
# Security Checklist für dk0.dev
Diese Checkliste stellt sicher, dass die Website sicher und produktionsbereit ist.
## ✅ Implementierte Sicherheitsmaßnahmen
### 1. HTTP Security Headers
-`Strict-Transport-Security` (HSTS) - Erzwingt HTTPS
-`X-Frame-Options: DENY` - Verhindert Clickjacking
-`X-Content-Type-Options: nosniff` - Verhindert MIME-Sniffing
-`X-XSS-Protection` - XSS-Schutz
-`Referrer-Policy` - Kontrolliert Referrer-Informationen
-`Permissions-Policy` - Beschränkt Browser-Features
-`Content-Security-Policy` - Verhindert XSS und Injection-Angriffe
### 2. Deployment-Sicherheit
- ✅ Zero-Downtime-Deployments mit Rollback-Funktion
- ✅ Health Checks vor und nach Deployment
- ✅ Automatische Rollbacks bei Fehlern
- ✅ Image-Backups vor Updates
- ✅ Pre-Deployment-Checks (Docker, Disk Space, .env)
### 3. Server-Konfiguration
- ✅ Non-root User im Docker-Container
- ✅ Resource Limits für Container
- ✅ Health Checks für alle Services
- ✅ Proper Error Handling
- ✅ Logging und Monitoring
### 4. Datenbank-Sicherheit
- ✅ Prisma ORM (verhindert SQL-Injection)
- ✅ Environment Variables für Credentials
- ✅ Keine Credentials im Code
- ✅ Database Migrations mit Validierung
### 5. API-Sicherheit
- ✅ Authentication für Admin-Routes
- ✅ Rate Limiting Headers
- ✅ Input Validation im Contact Form
- ✅ CSRF Protection (Next.js built-in)
### 6. Code-Sicherheit
- ✅ TypeScript für Type Safety
- ✅ ESLint für Code Quality
- ✅ Keine `console.log` in Production
- ✅ Environment Variables Validation
## 🔒 Wichtige Sicherheitshinweise
### Environment Variables
Stelle sicher, dass folgende Variablen gesetzt sind:
- `DATABASE_URL` - PostgreSQL Connection String
- `REDIS_URL` - Redis Connection String
- `MY_EMAIL` - Email für Kontaktformular
- `MY_PASSWORD` - Email-Passwort
- `ADMIN_BASIC_AUTH` - Admin-Credentials (Format: `username:password`)
### Deployment-Prozess
1. **Vor jedem Deployment:**
```bash
# Pre-Deployment Checks
./scripts/safe-deploy.sh
```
2. **Bei Problemen:**
- Automatisches Rollback wird ausgeführt
- Alte Images werden als Backup behalten
- Health Checks stellen sicher, dass alles funktioniert
3. **Nach dem Deployment:**
- Health Check Endpoint prüfen: `https://dk0.dev/api/health`
- Hauptseite testen: `https://dk0.dev`
- Admin-Panel testen: `https://dk0.dev/manage`
### SSL/TLS
- ✅ SSL-Zertifikate müssen gültig sein
- ✅ TLS 1.2+ wird erzwungen
- ✅ HSTS ist aktiviert
- ✅ Perfect Forward Secrecy (PFS) aktiviert
### Monitoring
- ✅ Health Check Endpoint: `/api/health`
- ✅ Container Health Checks
- ✅ Application Logs
- ✅ Error Tracking
## 🚨 Bekannte Einschränkungen
1. **CSP `unsafe-inline` und `unsafe-eval`:**
- Erforderlich für Next.js und Analytics
- Wird durch andere Sicherheitsmaßnahmen kompensiert
2. **Email-Konfiguration:**
- Stelle sicher, dass Email-Credentials sicher gespeichert sind
- Verwende App-Passwords statt Hauptpasswörtern
## 📋 Regelmäßige Sicherheitsprüfungen
- [ ] Monatliche Dependency-Updates (`npm audit`)
- [ ] Quartalsweise Security Headers Review
- [ ] Halbjährliche Penetration Tests
- [ ] Jährliche SSL-Zertifikat-Erneuerung
## 🔧 Wartung
### Dependency Updates
```bash
npm audit
npm audit fix
```
### Security Headers Test
```bash
curl -I https://dk0.dev
```
### SSL Test
```bash
openssl s_client -connect dk0.dev:443 -servername dk0.dev
```
## 📞 Bei Sicherheitsproblemen
1. Sofortiges Rollback durchführen
2. Logs überprüfen
3. Security Headers validieren
4. Dependencies auf bekannte Vulnerabilities prüfen