0

我正在通过 AJAX 使用 HTML5 画布、JS 和 PHP 设计一个简单的 MMORPG。我有一个简单的演示,用户可以在其中登录,并被带到一个页面,他们可以从下拉列表中选择一个世界。

但是,我现在面临一个安全问题:我需要能够通过 JS 告诉 PHP 要更改到哪个世界,但我不希望用户能够自己更改它。

我有一个可供用户使用的世界的下拉列表,但不希望他们能够通过非常简单的客户端黑客来改变他们喜欢的任何世界。即:通过 Chrome 的右键单击 -> 检查元素更改标签的值。

我知道解决方案是将所有内容都放在服务器端,但是我如何传递(从 JS 到 PHP)用户选择更改到的世界?

(抱歉,如果这写得不好,非常感谢提前)

4

2 回答 2

1

您只需根据允许该特定用户的世界列表检查用户在服务器上提供的值。

$allowed = array('Christoph' => array('world1', 'world2'), 'saricDen' => array('world1', 'world2', 'world3'));
if(in_array($_POST['world'], $allowed[$currentUser]))
    echo 'data for $_POST['world']';
else echo 'no data';

当用户请求一个他不允许加入的世界时,他不会获得世界的数据。

要通过 ajax 发布选定的数据:添加 onsubmit="sendAjaxRequest();" 到您通过 ajax 将数据发送到 php 的形式。一旦请求成功并告诉您他是否被允许加入:继续.. 或不。

于 2013-08-22T13:49:41.370 回答
0

您可以为每个世界密钥生成一个特殊的哈希并使用它。另一种选择是对所有其他值进行散列并对此进行验证。

不能保证它仍然不会被黑客入侵。

于 2013-08-22T13:42:39.520 回答