Jump to content

  • Log In with Google      Sign In   
  • Create Account

Android/IOS securing connection to remote Database


Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.


  • You cannot reply to this topic
4 replies to this topic

#1   Members   -  Reputation: 278

Like
0Likes
Like

Posted 25 November 2013 - 10:29 AM

Hi.

 

earlier today, i was considering how to create a connection from an android or IOS game, to a remote MySql Database.

 

Obviously you cant store database username and password as strings.

 

How should i tackle this problem, is there a secure way to make that connection, and in the same time, make it difficult for hackers to get access to the database

 

Regards Morten


www.mojostudios.dk

 

New Relealse  - Rainbow Run (IOS, Android)

Get it on Play store

Get it on App store


#2   Moderators   -  Reputation: 40167

Like
3Likes
Like

Posted 25 November 2013 - 11:02 AM

This is not unique to those platforms.

 

The game client connects to a server that you run and trust. The server authenticates the player, validates everything, and runs whatever processing is legitimately requested. The server, not the remote game client, connects to your databases.


Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I occasionally write about assorted stuff.


#3   Members   -  Reputation: 4679

Like
1Likes
Like

Posted 25 November 2013 - 02:52 PM

As frob said, you don't want to connect directly to the database from the client app. You will want to have a server with some sort of REST api that restricts what actions the client can do to the database. Not only is this more secure, but it is better design as well. By hiding the database behind an API your client side app does not need to be concerned with the structure of the database.

If your app connects directly to the database there is absolutely nothing you could do to keep hackers from doing the same. The best think you could do is create a database user with restricted permissions so they aren't allowed to drop tables or do other really damaging things. However, even with restricted permissions attackers could read any information from tables to get other users information as well as change or possibly delete it.

The best way to protect users at login is to establish an ssl connection with your server then send the username and password over that secure connection. Then have the server code do the authentication against the database. Another important thing you should keep in mind is that you should never store users passwords in the database in plain text. Instead you should do a one way hash of the passwords with some salt. This article describes how to do this. Secure Salted Passwords
My current game project Platform RPG

#4   Members   -  Reputation: 278

Like
0Likes
Like

Posted 26 November 2013 - 09:42 AM

thank you for the answers. have looked at the optin of using a REST api, and seems to be a good way to go.

Best regards Morten


www.mojostudios.dk

 

New Relealse  - Rainbow Run (IOS, Android)

Get it on Play store

Get it on App store


#5   Members   -  Reputation: 838

Like
1Likes
Like

Posted 27 November 2013 - 05:53 AM

Or better yet, let the user login with their existing google, fb, etc accounts so you don't have to store any pw at all! That's one of the benefits of doing this for sites/games. You don't want to be responsible for user PW's. If your server/db gets hacked you could be screwed and on the hook legally if they find your practices not up to par.

 

If your game isn't that big of a deal or relaxed or it's not the end of the world if something gets lost or mixed up then skipping any username/pw could be an option. For my game that stores a couple stats that isn't a big deal I'm not making the user make a username/pw. Instead I'm just making a GUID for each profile, storing it locally on their device and in the server DB. When they connect I just send it along as the ID of that device/person. Can that guid be hacked on the client side and used by someone else? Yes. Is it really the end of the world if that happens? No. Backups are made on the DB and any cases of this can be fixed, and the game isn't that serious in the first place. Just something to think about.


Edited by rpiller, 27 November 2013 - 05:56 AM.





Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.




PARTNERS