通过AJAX安全地将信息传递给PHP?

时间:2013-08-22 13:40:07

标签: php ajax security

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

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

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

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

(如果写得不好而道歉,并且非常感谢先进)

2 个答案:

答案 0 :(得分: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的形式。一旦请求成功并告诉您是否允许他加入:继续..或不。

答案 1 :(得分:0)

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

无法保证它仍然无法入侵。