Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

For a typical windows phone game where storage files could contain high scores or in-game currency data, how does one go about protecting these files from user tampering?

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

Each Windows Phone application has a private storage area (called Isolated Storage) assigned to itself. This area cannot be accessed by any other apps so it is considered safe to save sensitive data here.

The typical user won't be able to access it either. There are ways to do it though (via tools), so I'd also encrypt all sensitive data before storage. Then again, encryption is a good idea when working with sensitive data no matter how closed the storage area is.

There's an article discussing the whole thing on Isolated Storage here: http://www.jeffblankenburg.com/2010/10/15/31-days-of-windows-phone-day-15-isolated-storage/

An encryption w/ C# .NET question was asked on StackOverflow a while back: http://stackoverflow.com/questions/202011/encrypt-decrypt-string-in-net

Just one more thing: since you're so worried that users might tamper with your data, I presume you're working on a game that has some sort of online syncing functionality. If that's the case, then your best bet would be to keep sensitive data on the device for as long as required only. Save data, send data to server, get response, delete data depending on the response, repeat when required. Encrypting the data won't make it hack-proof.

If this is not your case, then you should not worry about the user tampering with the data. It's like protecting a single player game against cheats or hacks: not worth it.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.