Denk daran, die Hinweise des Security Checkers zu behebenStelle sicher, dass du die Ergebnisse des in Lovable integrierten Security Checkers bearbeitest, bevor du deine App online veröffentlichst. Der Security Checker scannt deine Anwendung automatisch und gibt wertvolle Empfehlungen zur Verbesserung der Sicherheit.
Die Architektur von Lovable verstehen
- Frontend: TypeScript/React-Anwendung
- Backend: Supabase Edge Functions (serverlose Funktionen)
- Datenbank: Supabase (PostgreSQL mit Echtzeitfunktionen)
Frontend-Sicherheit: Vertraue niemals clientseitigem Code
Die goldene Regel: Frontend-Code ist öffentlich
- Niemals Geheimnisse im Frontend-Code speichern – API-Schlüssel, Passwörter oder sensible Konfigurationen
- Niemals ausschließlich im Frontend validieren – clientseitige Validierung kann umgangen werden
- Daten aus dem Frontend niemals vertrauen – immer auf Seite der Edge Functions validieren
Häufige Sicherheitsfehler im Frontend
Beispiele für Eingabeaufforderungen zum Überprüfen und Verbessern der Frontend-Sicherheit
Backend-Sicherheit: Verschiebe deine Geschäftslogik in Edge Functions
Behandle Edge Functions als deine API-Ebene
- Authentifizierung und Autorisierung
- Datenvalidierung und -bereinigung
- Geschäftslogik und Workflows
- Integration mit externen Diensten
- Verarbeitung sensibler Daten
Bewährte Vorgehensweisen für Edge Functions
Was Edge Functions übernehmen sollten
- Überprüfe immer, ob Benutzer:innen wirklich die sind, die sie vorgeben zu sein, bevor du ihnen Aktionen erlaubst
- Prüfe, ob Benutzer:innen die richtigen Berechtigungen für bestimmte Vorgänge haben
- Vertraue niemals darauf, dass jemand eingeloggt ist, nur weil die Person es behauptet
- Prüfe alle eingehenden Daten, um sicherzustellen, dass sie das richtige Format haben
- Entferne potenziell schädliche Inhalte aus Benutzereingaben
- Stelle sicher, dass Daten deinen Geschäftsregeln entsprechen, bevor du sie weiterverarbeitest
- Übernimm komplexe Geschäftsprozesse wie Bestellabwicklung, Zahlungsberechnungen oder Benutzerregistrierung
- Verwalte Beziehungen zwischen verschiedenen Datenobjekten
- Koordiniere mehrere Schritte in einem einzelnen Vorgang
- Stelle sichere Verbindungen zu Drittanbietern wie Zahlungsdienstleistern, E-Mail-Anbietern oder APIs her
- Halte sensible API-Schlüssel und Zugangsdaten sicher unter Verschluss
- Gehe sorgfältig mit Fehlern und Zeitüberschreitungen um
- Verarbeite personenbezogene Informationen, Finanzdaten oder andere sensible Inhalte
- Wende bei Bedarf Verschlüsselung oder andere Sicherheitsmaßnahmen an
- Protokolliere wichtige Ereignisse für Sicherheits- und Compliance-Audits
Sicherheitsvorteile von Edge Functions
Beispiele von Eingabeaufforderungen für sichere Edge Functions
Datenbanksicherheit: RLS einfach halten und früh starten
Row Level Security (RLS) in Lovable
Häufige RLS-Muster in Lovable-Apps
- Benutzer sollten nur ihr eigenes Profil, ihre eigenen Einstellungen und persönlichen Daten sehen
- Standardmuster: „Benutzer können nur auf ihre eigenen Daten zugreifen“
- Teammitglieder können gemeinsam genutzte Projektdaten innerhalb ihres Teams sehen
- Muster: „Benutzer können auf Daten von Teams zugreifen, zu denen sie gehören“
- Öffentliche Beiträge, die jeder lesen kann, aber die nur Eigentümer bearbeiten können
- Muster: „Jeder kann lesen, nur Eigentümer können ändern“
- Mitarbeitende eines Unternehmens können auf Unternehmensdaten zugreifen
- Muster: „Benutzer können auf Daten aus ihrer Organisation zugreifen“
Überprüfung von RLS in deiner Lovable-App
- Finde heraus, für welche Tabellen RLS aktiviert ist
- Stelle sicher, dass Tabellen mit sensiblen Daten geschützt sind
- Stelle sicher, dass Tabellen mit öffentlichen Daten über passende Lese-Policies verfügen
- Überprüfe, dass Nutzer nur ihre eigenen Daten sehen können
- Teste, dass gemeinsam genutzte Daten für die richtigen Personen zugänglich sind
- Bestätige, dass öffentliche Daten für alle einsehbar sind
- Tabellen ohne aktiviertes RLS für sensible Daten
- Zu großzügige Policies, die zu viele Daten freigeben
- Fehlende Policies für neue Tabellen oder Features
Beispiele für Eingabeaufforderungen zur Überprüfung von RLS
Kurze RLS-Checkliste
- Für alle sensiblen Tabellen ist RLS aktiviert
- Benutzer können nur auf ihre eigenen persönlichen Daten zugreifen
- Freigegebene Daten haben entsprechende Zugriffskontrollen
- Neue Tabellen erhalten automatisch RLS-Richtlinien
- Die Richtlinien sind einfach und leicht verständlich
Sichere Authentifizierung: Logik auf dem Server halten
Authentifizierungslogik muss auf dem Server laufen
- Vertraue niemals clientseitigen Authentifizierungsprüfungen – Benutzer können den Browser-Code verändern
- Validiere Token auf dem Server – Überprüfe Authentifizierung immer in Edge-Funktionen
- Halte das Sitzungsmanagement serverseitig – Lass Supabase die sichere Sitzungsverwaltung übernehmen
- Lege Authentifizierungsgeheimnisse niemals offen – API-Schlüssel und Token sollten niemals im Frontend landen
Sicherer Authentifizierungs-Flow
Best Practices für die Authentifizierung
- Überprüfe die Benutzerauthentifizierung in Edge Functions immer, bevor du Anfragen verarbeitest
- Prüfe Benutzerberechtigungen und -rollen auf dem Server, nicht in React-Komponenten
- Validiere Session-Tokens gegenüber der Datenbank oder dem Authentifizierungsdienst
- Verwende das integrierte Session-Management von Supabase für die sichere Token-Speicherung
- Zeige die UI basierend auf dem Authentifizierungszustand an, triff aber niemals Sicherheitsentscheidungen auf dieser Basis
- Leite bei abgelaufenen Sessions zum Login weiter, validiere die Sitzung aber zuerst auf dem Server
Schutz des Arbeitsbereichs: Interne Anwendungen absichern
Stelle sicher, dass bei internen Apps die Sichtbarkeit auf „Workspace“ gesetzt ist
- Setze im Projekt-Dashboard die Projektsichtbarkeit interner Apps auf „Workspace“
- Stelle sicher, dass sie nicht ins Internet veröffentlicht werden
- Verwende eine geeignete Authentifizierung für alle internen Tools
- Überprüfe regelmäßig den Zugriff auf private Anwendungen
Zusammenfassung der wichtigsten Sicherheits-Best-Practices
Entwicklungsworkflow
- Mit Fokus auf Sicherheit starten - Implementiere RLS und Authentifizierung von Anfang an
- Verwende den Security Checker - Führe Lovables Security Checker regelmäßig aus
- Empfehlungen befolgen - Setze alle Sicherheitsempfehlungen um
- Gründlich testen - Überprüfe, ob die Sicherheitsmaßnahmen wie erwartet funktionieren
- Sicherheitsentscheidungen dokumentieren - Halte Sicherheitsentscheidungen und die Gründe dafür fest
Regelmäßige Sicherheitsprüfungen
- Berechtigungen der Edge-Funktionen überprüfen
- RLS-Richtlinien prüfen
- Auf offengelegte Geheimnisse prüfen
- Authentifizierungsabläufe prüfen
- Zugriffskontrollen testen
Allgemeine Sicherheitscheckliste
- Keine Geheimnisse im Frontend-Code
- Alle Validierungen in Edge Functions durchführen
- RLS-Richtlinien implementieren und testen
- Authentifizierung mit sicheren Methoden verwenden
- Interne Apps ordnungsgemäß schützen
- Security Checker ausführen und Empfehlungen befolgen
- Regelmäßige Sicherheitsüberprüfungen durchführen
Verwendung des Lovable Security Checkers
- Führe den Security Checker aus im Projekt-Dashboard
- Überprüfe alle Empfehlungen sorgfältig
- Setze die vorgeschlagenen Korrekturen zeitnah um
- Führe den Checker nach Änderungen erneut aus
- Dokumentiere alle Ausnahmen mit einer klaren Begründung