我有一个简单的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();
(怎么样)我能解决吗?
最佳答案
您可以使用身份验证,混淆和缩小的组合来保护JavaScript网络呼叫
>示例JS Obfuscator Library JScrambler
>样本JS Minification Library UglifyJS
>认证 –
我假设,您的API具有某种身份验证字段(例如Hash / Token等).如果没有,您可以将其与 – This answer集成.
>确保使用在会话基础上为您的JS客户端提供的salt(或甚至API密钥).这样,您就可以防止未经授权的访问.
>在服务器端,记住最后几个端点调用,在允许另一个端点调用之前,检查您的逻辑是否允许新的端点调用.
如果你按照上面的步骤,它肯定会使它非常安全.