安全和短服务器 - 客户端连接

时间:2016-12-21 18:02:55

标签: c# android python mysql server

我正在开发一款非常简单的Android游戏,它展示了几乎没有任何内容的Android应用程序。

游戏将使用Unity制作,因此它将用c#编写。我希望用Python编写服务器软件,因为我需要熟悉我对该语言的熟悉程度,并且我希望它能够运行在树莓派上(主要用于概念验证)。

服务器只需担心单个数据库中的单个表。这将保持"高分" MYSQL中的表。

这是背景,现在我的问题。什么是从应用程序向服务器获取数据的安全且简单的方法,反之亦然?我在看XML based RPC,但想知道是否有更简单的方法。应用程序只需要传递分数,首字母和哈希值进行验证。服务器只需要能够发回表。

它不必是安全的,因为我没有存储任何必要的东西,但是希望防止错误的条目,这就是为什么我有哈希来验证数据。

2 个答案:

答案 0 :(得分:1)

使用Flask框架构建的REST api简单易用。

为了获得强大的安全性,您可以在部署时使用HTTPS。您可以创建SSL证书以包含您的游戏代码,并让您的应用程序服务器需要客户端证书才能建立连接。这样可以防止未经身份验证的客户端甚至连接到您的服务器。

答案 1 :(得分:1)

这是一个非常广泛的一般问题,但这就是我如何思考它。在过去完成了一些Unity3d的工作后,我会尝试一下。

首先,我不会使用MySQL,而是使用PostgreSQL或者像Couchbase这样的无数据库。 Couchbase和其他非SQL数据库在游戏开发者中很受欢迎,因为与传统的Rdbms相比,它们具有更高的可扩展性和灵活的模式。这部分当然只是我的意见。

使用散列(建议使用SHA)来防止基本伪造的想法是一种很好的方法,可以实现最低级别的安全性。只是不要忘记在哈希中添加一些秘密词,并保密隐藏和内存 - 如果可能的话。该秘密还需要服务器知道,才能复制哈希码。

在服务器端,使用Python总是一个好主意 - imho。我会使用Flask或其他一些最小的Web框架,并开始构建一个RESTful api,你可以使用来自Unity3d客户端的HTTP请求。

在客户端之间来回发送的数据只是JSON(它比XML更紧凑),并且有几个可用于Unity3d的JSON库 - 只需确保专门为Unity提供一个,因为一些一般的C#库如果依赖于Reflection,也可能在Unity中失败,并且也取决于目标平台。