Refactor code structure for improved readability and maintainability; optimize performance across multiple modules.
All checks were successful
Deploy to production / deploy (push) Successful in 2m56s

This commit is contained in:
Torsten Schulz (local)
2026-07-21 09:08:15 +02:00
parent 75b52de282
commit 1ab9407e79
1400 changed files with 22278 additions and 485 deletions

37
android/SECURITY.md Normal file
View File

@@ -0,0 +1,37 @@
# Native Android Security
## Umgesetzte Schutzmaßnahmen
- Die Sitzung liegt ausschließlich in `EncryptedSharedPreferences` mit Android-Master-Key.
- Release-Builds enthalten keinen HTTP-Body-Logger. Der detaillierte OkHttp-Logger ist auf
Nicht-Release-Builds begrenzt.
- Release-Netzwerkverkehr erlaubt kein Cleartext. Nur der lokale Debug-Flavor darf
`10.0.2.2` und `localhost` per HTTP ansprechen.
- Chat, Galerie, Persönliches und der Adult-Bereich setzen `FLAG_SECURE`. Damit verhindert
Android Screenshots, Bildschirmaufnahmen und die Anzeige im App-Switcher.
- Uploads werden vor dem Service auf einen erlaubten MIME-Typ und eine Größe begrenzt:
Bilder/Verifikationsnachweise 10 MiB, Videos 100 MiB. Bilder werden zusätzlich durch
Sharp dekodiert, damit ein behaupteter MIME-Typ nicht genügt.
## Bewusste Entscheidungen
### Certificate Pinning
Certificate Pinning wird aktuell **nicht** erzwungen. Die API verwendet HTTPS und die
plattformseitige Trust-Store-Prüfung. Pinning würde bei Zertifikats- oder CDN-Wechseln ohne
App-Update zu vollständigen Ausfällen führen. Es wird erst eingeführt, wenn es mindestens zwei
parallel gültige Pins, ein dokumentiertes Rotation-Verfahren und Monitoring für Pin-Fehler gibt.
### Root- und Bootloader-Erkennung
Die App blockiert gerootete Geräte nicht. Eine lokale Erkennung ist umgehbar und würde legitime
Nutzer sowie Emulator-Tests ausschließen. Sensible Daten bleiben verschlüsselt, Screenshots in
sensiblen Bereichen sind gesperrt und Berechtigungen werden auf dem Server durchgesetzt.
Play Integrity wird bei späteren Hochrisiko-Aktionen als serverseitig prüfbares Signal bewertet,
nicht als pauschale Startblockade.
## Dependency Scanning
`.github/workflows/android-security.yml` führt bei Pull Requests und Pushes einen
OSV-Abhängigkeitsscan sowie Android-Lint für den Produktions-Release aus. Kritische Findings
werden vor einem Release bewertet.