-2

在我的视频游戏中,我希望用户能够从 MySQL 服务器发布/获取地图数据。我的问题是我想让它限制为使程序只能创建/获取级别,不能从页面中发送垃圾邮件并制作大量虚假级别(通过 php 页面)

我试图阻止虚假请求的数量,以便真正玩游戏的用户只能真正访问 PHP 内容,而不是想要破坏体验的人。

我知道我可以对代码进行简单的检查,但是当该代码被发现时会发生什么?这不是真正的身份验证,也许我可以进行串行检查,但游戏根本不需要您在线注册和注册帐户。

4

3 回答 3

0

正如评论中提到的,我建议您使用 REST Web 服务。我实际上正在使用tonic REST 框架,或者如果您需要轻量级的东西,silex可能适合您。

于 2012-12-09T10:59:41.063 回答
0

我认为您害怕的问题是该 php 页面将可以通过网络访问,以便任何人都可以访问它。在这种情况下,我会使用 $_GET 变量来保护页面并发送数据。

例如创建一个关卡: http ://www.example.com/create.php?key=hkjaSDFg45fgsdGDF&user=13542&map=underground&etc ..

然后在 create.php 文件中它看起来像

<?php
if(isset($_GET['key'] && $_GET['key'] == hkjaSDFg45fgsdGDF){
  //check if user is allowed -- $_GET[user]
  if(userallowed($_GET['user'])){
    //create map
  }
}

这只是一个例子,但如果你不想去创建一个完全成熟的 api,那么这样的事情就可以完成

始终首先验证数据,切勿直接使用 $_GET 变量

于 2012-12-09T11:01:31.067 回答
0

首先,您必须接受恶意用户将始终能够访问该服务器并根据需要创建这些地图。他们拥有游戏的代码,因此可以对其进行逆向工程,以便在给定时间的情况下撤消您能想到的任何事情。

  • 让用户为您的服务器创建一个帐户。在这里,您可以使用某种验证码。
  • 要求注册/登录用户提交地图
  • 限制用户每分钟可以创建的地图数量(以不影响真实用户的方式编写游戏代码)
  • 也许限制用户可以提交的地图总数
  • 尽可能使用 HTTPS。
于 2012-12-09T11:21:40.033 回答