fix: 6 Claude-Audit-Fixes (3 CRIT + 3 HIGH)

CRITICAL:
- Logout: LoginScreen statt MeloHome pushen (home_screen.dart)
- Path Traversal: sanitizeDateiname() zentral + sync-loop abgesichert
- SecureStorage: flutter_secure_storage für Token+Passwort (auth_service, navidrome)

HIGH:
- Seek: PlayerService.seek() reload-frei (audio_handler)
- Play/Pause: Zielzustand statt Toggle für System-Controls
- X-User: Header entfernt, Server verlässt sich auf JWT
This commit is contained in:
Dustin
2026-08-03 01:41:04 +02:00
parent de71119235
commit e46ffa76a3
10 changed files with 76 additions and 34 deletions
+2 -1
View File
@@ -12,6 +12,7 @@ import '../widgets/song_tile.dart';
import 'download_screen.dart';
import 'cloud_screen.dart';
import 'settings_screen.dart';
import 'login_screen.dart';
import '../services/cloud_service.dart';
import '../services/auth_service.dart';
import '../config/app_config.dart';
@@ -397,7 +398,7 @@ class _MeloHomeState extends State<MeloHome> {
await AuthService().logout();
if (mounted) {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (_) => const MeloHome()),
MaterialPageRoute(builder: (_) => const LoginScreen()),
);
}
break;