我有一个简单的 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 混淆器库 JScrambler
示例 JS 缩小库 UglifyJS
身份验证-
我假设,您的 API 具有某种身份验证字段(例如哈希/ token 等)。如果没有,您可以将其与 - This answer 集成.
- 确保您使用在 session 基础上提供给您的 JS 客户端的盐(甚至 API key )。这样,您就可以防止未经授权的访问。
- 在服务器端,记住最后几个端点调用,在允许另一个端点调用之前,检查您的逻辑现在是否允许新的调用。
如果您按照上述步骤操作,肯定会非常安全。
关于javascript - 从 JavaScript 调用 PHP 文件是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32679799/