Hi all,
I’m new to this forum. It’s great! (Well, so far I’ve mostly “used” the Showcase forum to find amuzing games to play:))
So here I have a problem, I would like your input on.
The setup:
A web server with PHP and a mysql database is used to collect player scores. Whenever a player has completed a game/level, the score is submitted to the server.
The problem:
Somewhat needy players are able to decompile the game and see what and how data is sent. Ie. http://blah.blah?score=123&player=JohnDoe. The players are then able to setup their own script that submits a score on a regular basis.
The attempted solution:
Add some checksum, ie. in the client do a MD5(score + “secret passphrase” + playername) and submit that as well: http://blah.blah?score=123&player=JohnDoe&checksum=14FSJHGFD45SA32lsGF2464GFD
- but that obviously just makes it slightly more difficult. One could make a “crazy checksum” with variables spread across all of the client, but it just takes a slightly more determined “hacker” to figure it out.
I’ve previously read suggestions like “do a replay of the game on the server, ie. submit all user actions” but that’s also quite easy to figure out for a determined person.
So, how do you do it? Is it possible to achieve “good enough” security by using an obfuscator in Java? Switching to HTTPS is not a solution, as far as I can tell.
Any input would be greatly appreciated. I imagine it MUST be possible to avoid the decompilation somehow in Java. In Flash at least, the conclusion to this problem is sad: http://stackoverflow.com/questions/73947/what-is-the-best-way-to-stop-people-hacking-the-php-based-highscore-table-of-a-f
I hope for some good suggestions!
Best regards and thanks in advance,
adadad
server side security problematic is completly different than client side, you can theorically (and practically) get unbreakable server security, you cannot client side, think of how much client software are hacked in comparaison of server, in certain case server may be breaked but it is a completly different process and far easier to secure