Ich habe eine Xamarin.Forms App, die eine lokale SqLite-Datenbank als Datenquelle verwendet. Da die Daten proprietär sind, möchte ich sie schützen. Wenn jemand Zugriff auf die Datenbankdatei erhält, muss er sie entschlüsseln, um auf die Daten zugreifen zu können.Schutz lokaler proprietärer Daten in einer Xamarin App
Ich möchte auch die Anzahl der Abfragen beschränken, die Benutzer gegen die Datenbank stellen können, so dass sie zu einem bestimmten Zeitpunkt die Möglichkeit erwerben müssen, mehr Daten zu verwenden (In-App-Kauf).
Ich möchte vermeiden, dass Netzwerkanrufe so oft wie möglich ausgeführt werden, um die Auswirkungen auf den Datentarif des Benutzers zu minimieren und die App unter Bedingungen mit schlechter oder fehlender Konnektivität gut funktionieren zu lassen. Also möchte ich die Daten in einer lokalen Datenbank (vielleicht in SqLite) gespeichert.
Ich bin gespannt, wie verschiedene Leute dieses Problem angehen würden, um die Daten zu schützen und gleichzeitig die Netzwerkauslastung zu minimieren.
Hier ist eine Art, was ich dachte (wenn es möglich ist):
1) Lassen Sie den Benutzer download/die App installieren.
2) Beim ersten Laden lädt die App einen Schlüssel basierend auf der Geräte-ID und den aktuellen Kaufinformationen des Benutzers hoch. Dann wird eine SqLite-Datenbankdatei heruntergeladen, die mit dem hochgeladenen Schlüssel verschlüsselt wurde.
3) Wenn der Benutzer das Limit der Abfragen erreicht, wird die Datenbankdatei gelöscht. Wenn sie mehr Daten kaufen, wird ein neuer Schlüssel hochgeladen und eine neue verschlüsselte Datenbank wird heruntergeladen, um verwendet zu werden.
Gedanken? Gibt es einen besseren Weg?
schöne Frage, lassen Sie uns sehen, was andere sagen wird, wenn die Datenbank lokal gespeichert ist, die Abfragen oder Löschen der Datenbank zu begrenzen hilft nicht viel denke ich, kann der Benutzer einen Weg, um Zugang finden die Datenbank, ohne die App zu öffnen, aber die ganze Datenbank zu entschlüsseln sollte reichen – CDrosos