受保护的php访问权限

时间:2012-12-09 10:51:18

标签: php security

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

我正在努力防止虚假请求的数量,以便玩游戏的真实用户只能真正访问PHP内容,而不是那些想要破坏体验的人。

我知道我可以对代码进行简单的检查,但是当代码被捕获时会发生什么?这不是真正的身份验证,也许我可以进行连续检查,但游戏不需要您在线注册并创建帐户。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我认为您害怕的问题是,php页面可以通过Web访问,以便任何人都可以访问它。在这种情况下,我会使用$ _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 VARIBLE

答案 2 :(得分:0)

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

  • 让用户为您的服务器创建一个帐户。在这里你可以使用某种验证码。
  • 要求注册/登录用户提交地图
  • 限制用户每分钟可以创建的地图数量(以不影响真实用户的方式编写游戏代码)
  • 可能会限制用户可以提交的地图总数
  • 尽可能使用HTTPS。