从JavaScript调用PHP文件是否安全?

时间:2015-09-20 13:14:20

标签: javascript php mysql ajax xmlhttprequest

我有一个简单的HTML5 Canvas游戏,在一部分的最后我想在MySQL中存储变量。使用XMLHttpRequest,Ajax或其他方法做到这一点是否安全?这就是我开始写它的方式:

var request = new XMLHttpRequest();
request.onreadystatechange = function() {
    if (request.readyState == 4 && request.status == 200) {
        var success = request.responseText;
        alert(success);
    }
}
request.open('GET', 'saveLevel.php?name='+name+'&level='+level, true);
request.send();

我的问题是每个人都可以在控制台中这样做:

var request = new XMLHttpRequest();
request.onreadystatechange = function() {
    if (request.readyState == 4 && request.status == 200) {
        var success = request.responseText;
        alert(success);
    }
}
request.open('GET', 'saveLevel.php?name='+name+'&level=100', true);
request.send();

(怎么样)我可以解决它吗?

1 个答案:

答案 0 :(得分:4)

您可以使用身份验证,混淆和缩小的组合来保护JavaScript网络呼叫

  • 示例JS Obfuscator Library JScrambler

  • 示例JS缩小库UglifyJS

  • 身份验证 -

    我认为,您的API具有某种身份验证字段(例如Hash / Token等)。如果没有,您可以将其与 - This answer集成。

    • 确保使用在会话基础上提供给JS客户端的salt(或甚至API密钥)。这样,您就可以防止未经授权的访问。
    • 在服务器端,记住最后几个端点调用,在允许另一个端点调用之前,检查您的逻辑是否允许新的端点调用。

如果您按照上述步骤操作,肯定会让它非常安全。