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

标签 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();

(如何)我能解决吗?

最佳答案

您可以结合使用身份验证、混淆和缩小来保护您的 JavaScript 网络调用

  • 示例 JS 混淆器库 JScrambler

  • 示例 JS 缩小库 UglifyJS

  • 身份验证-

    我假设,您的 API 具有某种身份验证字段(例如哈希/ token 等)。如果没有,您可以将其与 - This answer 集成.

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

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

关于javascript - 从 JavaScript 调用 PHP 文件是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32679799/

相关文章:

php - 如何仅针对某些字段向 phpMyAdmin 添加自定义编辑器?

c# - UTC 日期时间转换为本地时间

javascript - 如何使用 HTML5 和 CSS 更改按钮背景颜色 3 次

javascript - 对 AJAH 图书馆的建议

php - 我看不到我使用 phpmyadmin 上的表单添加的数据

php - 带有消息 'Protocol "https 的 Google 服务身份验证 Google_IO_Exception 在 libcurl 中不受支持或禁用

php - 所有单元格的背景颜色都是相同的

mysql - 将 mysql 查询移动到模型

javascript - 如何使用 ng-animate 以与列出元素相同的方式为表格行设置动画?

javascript - 无法使用 req.session 在特定路由中设置未定义的属性 'X'