Dies ist von Apple docs:
Wenn Sie ein Spiel entwerfen, das Ergebnisse an Game Center meldet, sollten Sie dies tun Berücksichtige auch die Sicherheitsbedürfnisse deines Spiels. Sie wollen Noten an Game Center gemeldet, um eine genaue Abrechnung der Spieler zu erhalten sind dabei. Hier sind zwei Vorschläge:
Speichern Sie Ihre Spieleinstellungen und gespeicherte Spiele in einem sicheren Format, anstatt im Klartext. Wenn die Daten deines Spiels klar gespeichert sind Text kann ein Spieler die gespeicherten Spieldaten mit iTunes herunterladen, ändern es und resync es zurück zum Gerät. Dies kann dem Spieler erlauben erreiche eine höhere Punktzahl als du beabsichtigt hast. Immer vernünftig einstellen Minimal- und Maximalwerte für eine Bestenliste.
Ich weiß, dass Daten in . plist Datei oder .xml oder .json, auch in einer Datenbank. Aber all das ist unverschlüsselter Klartext. Was gilt als sicheres Format? Und was sonst können Methoden / Klassen / Techniken verwendet werden, um sensible Daten zu speichern?
Wenn ein Hacker ausreichend ermittelt wurde und über die richtigen Fähigkeiten verfügt, können Ihre gespeicherten Daten in der Regel unabhängig von der Speichermethode kompromittiert werden. Es läuft darauf hinaus, was die Anwendungen Ihrer App sind und wie viel Zeit und Mühe Sie investieren, um die Daten sicher zu halten. Im Folgenden finden Sie einige Optionen, die Sie beachten sollten:
NSUserDefaults
Eine der gebräuchlichsten und einfachsten Methoden zum Speichern von Daten. Daten sind nicht verschlüsselt.
Zeichenfolge in den NSUserDefaults speichern?
Plist-Dateien
Auch eine übliche Art, Daten zu speichern. Daten sind nicht verschlüsselt.
Speichern und Abrufen von einem Plist
CoreData strong>
Erzeugt ein Modell, verwaltet die Beziehung zwischen verschiedenen Arten von Objekten. Standardmäßig sind Daten nicht verschlüsselt.
Schlüsselanhänger
Die sicherste Methode zum Speichern von Daten auf einem Gerät ohne Jailbreak. Daten sind verschlüsselt.
NSCoding
Wie Wirbelwind schon darauf hingewiesen hat, ist dies eine weitere Speichermethode.
CommonCrypto Apple Framework
Low-Level-C-Codierung. Daten sind verschlüsselt.
Benutzerdefinierte Ansätze
Speichern Sie die Daten in der Cloud und eliminieren Sie sie auf dem Gerät. Verwenden Sie die Touch ID-Funktion, um den Benutzer zu authentifizieren und die Cloud-Daten herunterzuladen.
Der sicherste Ort zum Speichern Ihrer Daten befindet sich im Schlüsselbund , aber es ist immer noch nicht 100% sicher, wenn Benutzer auf Jailbreak-Geräten sind. Befolgen Sie die Richtlinien von Apple zum Festlegen von Minimal- und Maximalwerten für eine Bestenliste.
Hier ist ein weiterer SO-Beitrag , der beschreibt Wie können Sie die Informationen in NSDictionary
als NSData
speichern, die dann von Ihrer App verschlüsselt und entschlüsselt werden.
Tags und Links objective-c ios security persistence sprite-kit