在我的视频游戏中,我希望用户能够从 MySQL 服务器发布/获取地图数据。我的问题是我想让它限制为使程序只能创建/获取级别,不能从页面中发送垃圾邮件并制作大量虚假级别(通过 php 页面)
我试图阻止虚假请求的数量,以便真正玩游戏的用户只能真正访问 PHP 内容,而不是想要破坏体验的人。
我知道我可以对代码进行简单的检查,但是当该代码被发现时会发生什么?这不是真正的身份验证,也许我可以进行串行检查,但游戏根本不需要您在线注册和注册帐户。
我认为您害怕的问题是该 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 变量
首先,您必须接受恶意用户将始终能够访问该服务器并根据需要创建这些地图。他们拥有游戏的代码,因此可以对其进行逆向工程,以便在给定时间的情况下撤消您能想到的任何事情。