1. Projektübersicht¶
Kurzbeschreibung der Anwendung¶
SecureNotes ist eine moderne, webbasierte Notizverwaltungsanwendung, die Benutzern ermöglicht, Markdown-formatierte Notizen zu erstellen, zu bearbeiten und zu verwalten. Die Anwendung unterstützt verschiedene Sichtbarkeitseinstellungen (privat vs. öffentlich), eine Volltextsuche sowie das Teilen von Notizen über Links. Die Notizen können YouTube-Videos über eine spezielle Embed-Syntax einbinden.
Ziel des Projekts im Kontext Secure Software Engineering¶
Das Projekt wurde im Rahmen des Moduls "Secure Software Engineering" entwickelt, um die praktische Anwendung moderner Sicherheitskonzepte in einer Full-Stack-Anwendung zu demonstrieren. Der Schwerpunkt liegt auf der Implementierung von Defense-in-Depth-Strategien, sicherer Authentifizierung, Eingabevalidierung, Content Security Policy und der Einhaltung von Security-by-Design-Prinzipien.
Security-Fokus¶
- Defense-in-Depth: Mehrere Sicherheitsschichten (Authentifizierung, Input Validation, Output Encoding)
- Security-by-Design: Sicherheit von Anfang an in Architektur und Design integriert
- OWASP Top 10: Adressierung der häufigsten Web-Sicherheitsrisiken
- Defense-in-Code: Defensive Programmierung mit Typisierung und Validierung
Abgrenzung des Funktionsumfangs¶
Enthaltene Funktionen¶
- ✅ Benutzerregistrierung mit E-Mail-Verifikation
- ✅ Login mit Passwort und Google OAuth
- ✅ Passwort-Zurücksetzen-Funktion
- ✅ CRUD-Operationen für Notizen
- ✅ Markdown-Unterstützung mit HTML-Sanitization
- ✅ YouTube-Video-Embedding
- ✅ Volltextsuche über Notizen
- ✅ Sichtbarkeitseinstellungen (PRIVATE/PUBLIC)
- ✅ API-Key-Management für programmatischen Zugriff
- ✅ Session-Management mit Rotation
- ✅ CSRF-Schutz
Nicht enthalten¶
- ❌ Kollaborative Bearbeitung (Real-time)
- ❌ Versionierung von Notizen
- ❌ Datei-Uploads
- ❌ Export-Funktionen (PDF, Markdown, etc.)
- ❌ Benachrichtigungssystem (Push, E-Mail-Benachrichtigungen)
- ❌ 2-Faktor-Authentifizierung (TOTP, SMS)
- ❌ Dark Mode Toggle (nur system-based)
Sicherheitsprinzipien¶
Das Projekt folgt folgenden Sicherheitsprinzipien:
- Least Privilege: Minimal notwendige Berechtigungen für alle Benutzer
- Fail Securely: System verhält sich sicher bei Fehlern
- Defense in Depth: Mehrere Sicherheitsschichten unabhängig voneinander
- Security through Obscurity vermeiden: Sicherheit basiert auf offenen Prinzipien
- Default Deny: Standardmäßig alles verbieten, nur explizit erlauben
Nächste Schritte¶
- Gruppenmitglieder - Erfahren Sie mehr über das Entwicklungsteam
- Verwendete Technologien - Detaillierte Übersicht über den Tech-Stack
- Sicherheitskonzept - Tiefgehende Security-Analyse