Architekturüberblick
MapSpoto verwendet Expo / React Native im Frontend und Supabase für Authentifizierung, Datenbank, Storage und Realtime-Funktionen im Backend.
Der Stack selbst ist keine Sicherheitsgarantie, aber er stellt ausgereifte Bausteine für Authentifizierung, Berechtigungen und Datenbankkontrollen bereit, die wir für strengere Zugriffsregeln nutzen können.
Datenbank-Zugriffskontrolle
MapSpoto nutzt PostgreSQL Row Level Security (RLS), um den Datenzugriff einzuschränken.
Das bedeutet, dass normale Clients nur Daten lesen können, für die sie berechtigt sind. Nicht öffentliche Daten anderer Nutzer sind über die normalen App-Schnittstellen nicht zugänglich.
Wir veröffentlichen keine langen SQL-Richtlinien direkt auf der Website, prüfen und verschärfen die Datenbankregeln aber laufend.
Konto- und Passwortsicherheit
Das Kontosystem basiert auf Supabase Auth.
Entwickler können Ihr Klartext-Passwort nicht sehen. Speicherung und Prüfung von Passwörtern übernimmt das Authentifizierungssystem.
Umgang mit Frontend-Schlüsseln
Das App-Frontend verwendet nur einen eingeschränkten anonymen Zugriffsschlüssel (Anon Key), um sich mit dem Backend zu verbinden.
Hochprivilegierte Service-Schlüssel werden nicht in den Frontend-Code eingebettet und nicht mit der App ausgeliefert.
Sicherheitsprüfungen
Wir nutzen Drittanbieter-Tools und Plattformfunktionen, um häufige Sicherheitsprobleme zu prüfen, zum Beispiel:
- Supabase Security Advisor zur Prüfung von Datenbank-, RLS- und Storage-Zugriffseinstellungen.
- Abhängigkeitsscans, um bekannte Probleme in Drittanbieter-Paketen zu erkennen.
- Code-Scanner, um typische Sicherheitsfehler und Fehlkonfigurationen zu finden.
- Secret-Scanning, um sicherzustellen, dass keine hochprivilegierten Schlüssel oder sensiblen Umgebungsvariablen versehentlich committet wurden.
Letzte Prüfung der Abhängigkeitssicherheit
Wir haben eine Sicherheitsprüfung der Frontend-Abhängigkeiten abgeschlossen und die in dieser Runde gefundenen Hoch- und Mittelrisiko-Abhängigkeiten aktualisiert oder strenger versioniert.
Das aktuelle Ergebnis lautet: High 0 / Moderate 0 / Critical 0 / Low 1.
Der verbleibende Low-Befund liegt in einer Test-Abhängigkeitskette und gehört nicht zum tatsächlichen Produktionslaufzeitpfad.
Nach den Abhängigkeitsanpassungen haben wir außerdem den lokalen Start und zentrale Funktionen geprüft, darunter Anmeldung, Karten, Veranstaltungsseiten, Chat und Profilseiten. In dieser Prüfrunde wurde kein offensichtliches Laufzeitproblem festgestellt.
Prüfwerkzeug: Yarn Audit. Der Rohbericht kann heruntergeladen werden.
Letztes Ergebnis des Secret-Scannings
Zusätzlich haben wir mit gitleaks die aktuell versionskontrollierten Quelldateien auf versehentlich committete Secrets geprüft.
Das aktuelle Ergebnis lautet: 0 findings.
Dieser Scan umfasste nur die aktuell von Git verfolgten Quelldateien. Git-Historie und lokal erzeugte Build-Dateien waren nicht enthalten.
Prüfwerkzeug: gitleaks. Der Rohbericht kann heruntergeladen werden.
Letzter Code-Sicherheitsscan
Zusätzlich haben wir mit Semgrep einen statischen Sicherheitsscan auf den aktuell versionskontrollierten Frontend-Quelldateien durchgeführt.
Das aktuelle Ergebnis lautet: 0 findings.
Dieser Scan wurde nach einer Bereinigung einer reinen Typsyntax erneut ausgeführt. Im aktuellen Ergebnis gibt es weder Sicherheitsbefunde noch Parsing-Warnungen.
Prüfwerkzeug: Semgrep. Der Rohbericht kann heruntergeladen werden.
Aktuelle Verbesserungsfelder
- Öffentliche Profilfelder weiter einschränken, um unnötige Offenlegung persönlicher Informationen zu reduzieren.
- Zu breite öffentliche Storage-Zugriffe entfernen, damit ganze Buckets nicht öffentlich aufgelistet werden können.
- Regeln zur Profilvollständigkeit vereinfachen, damit Kontaktdaten und ähnliche sensible Felder nicht als notwendige Profilsignale behandelt werden.
Umfang und Grenzen
Wir verbessern Sicherheitskonfigurationen und Produktlogik laufend, behaupten aber nicht, dass die App „absolut sicher“ ist.
Sicherheit ist ein fortlaufender Prozess. Wenn wir neue Probleme finden, werden wir sie weiter beheben und Regeln nachschärfen.
Zurück zur Datenschutzerklärung