Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How secure is a plist included in my xcode project after compilation?

If I store important values in a plist in xcode, is that less secure than if it was hard coded in a class? Could jail broken devices mess with those values easily? I know there's a certain level of risk with everything, but can someone explain the relative risks of a flat file vs hard coded values (in a MyClass.m file)?

Sub question: How do you go about storing large amounts of initial data for a game/app to run on? It's fine if the values are readable, I just don't want them easily writable.

like image 346
Vanny Avatar asked Mar 18 '23 07:03

Vanny


1 Answers

as for reading data:

plist data is not secure at all - getting plist content takes virtually no time! (and as the ipa is just a renamed zip you don't even need a device ;))

Extracting compiled code is 'harder' but in case of plain text strings only by a small margin. (again: no need for a device)


as for writing to it:

data is you deliver is never writable without breaking the code signature. Therefore any method is fine. Often one ships CoreData databases when using CD, but I also use xmld, jsons, plists.. to deliver my content. whatever suits the needs best

note: breaking the code signature makes the app unusable on a stock iOS device but I think It'd remain usable on a jailbroken phone as the kernel doesn't really check the signature there

like image 178
Daij-Djan Avatar answered Apr 08 '23 06:04

Daij-Djan