将数据更新到php Web服务器

将数据更新到php Web服务器,php,.net,security,Php,.net,Security,我正在用Java/.net作为客户端,使用phpwebserver制作一个简单的游戏 现在,当某人完成关卡、退出或开始一个新游戏时,客户端会在php页面上发送信息,并将其存储在mysql数据库中 现在我不想让用户作弊。 要使用游戏客户端,您需要用户名和密码 客户端发送他们玩游戏的次数、哪个玩家输了、赢得了多少分。因此,如果我发送清晰的信息,有人可以使用嗅探器查看我调用的php页面,并将信息复制到Web服务器 那么在这种情况下,最好的安全/检查系统是什么? 我曾考虑使用我在java vb.net

我正在用Java/.net作为客户端,使用phpwebserver制作一个简单的游戏

现在,当某人完成关卡、退出或开始一个新游戏时,客户端会在php页面上发送信息,并将其存储在mysql数据库中

现在我不想让用户作弊。 要使用游戏客户端,您需要用户名和密码

客户端发送他们玩游戏的次数、哪个玩家输了、赢得了多少分。因此,如果我发送清晰的信息,有人可以使用嗅探器查看我调用的php页面,并将信息复制到Web服务器

那么在这种情况下,最好的安全/检查系统是什么?
我曾考虑使用我在java vb.net c#和php(如des、md5)中可用的任何加密系统,但我想知道这是否是更好的解决方案

更新客户端不使用Web浏览器与Web服务器通信。例如,WinForm应用程序调用php页面获取信息并更新Mysql数据库上的数据
非常感谢

在继续之前,您应该知道一些事情:

  • 可以检查客户端浏览器上的所有内容。这包括您回数据库服务器的所有调用。加密对此并不重要,因为很明显,javascript代码将是加密/解密数据的部分。可以很容易地查看Javascript以获取密钥

  • 即使是Flash等,也可以由那些愿意花几分钟时间来解决的人进行反编译

  • 不要等到他们完成所有游戏后才将信息发送到您的数据库。在动作发生时这样做

  • 当在浏览器中使用javascript作为游戏引擎时,您只能让作弊变得有点困难,而不是不可能。我所说的“有点难”是指,对于一个甚至有一半不错编程技能的人来说,可能需要一个小时的时间才能击败。。。很可能是更少

  • 关于嗅探。不管您的站点是否启用了SSL。这只会在信息离开计算机后对其进行保护。它不会对位于客户端机器上的嗅探器做任何事情


  • 总而言之:你唯一真正的防御措施就是让作弊成为不值得任何人花时间去做的事情

    最好的选择是让应用程序使用Web服务,客户端应用程序在发送消息之前对消息进行加密,但除非您输入一些传统的加密数据(如时间戳以尝试减轻任何重播攻击),否则您仍然会对能够“轻松”欺骗的人开放

    Net有一些很好的WCF服务选项,尽管我从未将WCF与php端点一起使用过,但WCF的理念是允许跨技术通信,最好的选择是对该领域进行一些研究


    还要注意的是,MD5不是一种加密方法,它是一种散列算法,这意味着一旦对数据进行散列,就无法恢复

    不,等等,我不使用浏览器作为客户端,而是使用Java、C#vb.net开发的程序,我只调用php Web服务器。