2017-01-13 1 views
-1

Meine App basiert auf verschiedenen Rollen. Zum Beispiel Lehrer, Eltern und so weiter. So sehen unterschiedliche Benutzer unterschiedliche Aktivitäten und haben unterschiedliche Berechtigungen. Und wenn das Gerät gerootet ist, könnte das SharedPreferences-Objekt geändert werden.Kann ein Hacker die Erkennung beim Ändern des SharedPreferences-Objekts vermeiden, obwohl ich es überprüft habe?

Ich speichere die Rolle vom Benutzer in einem SharedPreferences-Objekt, wenn er sich anmeldet (ich erhalte seine Rolle von einer Datenbankabfrage).

Er könnte leicht seine Rolle zum Lehrer zum Beispiel ändern und mehr Berechtigungen haben. Er könnte alle Daten löschen.

Nach einer wenig Forschung, die ich diese gefunden: How to detect if changes were made in the preferences?

Meine Frage ist nun: Kann ein Hacker Erkennung vermeiden, wenn die Werte aus dem Objekt zu ändern, obwohl ich es wie im Beispiel oben überprüft?

+0

'OnSharedPreferenceChangeListener' würde nicht einmal funktionieren, weil ein Hacker die Datei direkt außerhalb des Kontexts der App ändern würde. – DeeV

Antwort

1

Ja. Wenn Sie Sicherheit wünschen, überprüfen Sie die Berechtigungen auf dem Server jedes Mal, wenn Sie eine Anfrage stellen, und senden Sie nichts, was er nicht sehen sollte. Dann ist das Beste, was er tun kann, einige zusätzliche Knöpfe zu bekommen, die beim Drücken einen Fehler auslösen.

+0

Aber dann muss ich seinen Benutzernamen kennen, um ihm seine Berechtigungen/Aktivitäten zur Verfügung zu stellen (ich brauche das für eine Abfrage). Wie würden Sie diese Informationen speichern? – TNII

+0

Überprüfen Sie die tokenbasierte Authentifizierung. Sie müssen den Benutzernamen/das Passwort nicht bei jeder Anfrage senden. –

Verwandte Themen