保护 POST 请求免受操纵

Secure POST request against manipulation

提问人:nameless 提问时间:12/13/2022 更新时间:12/13/2022 访问量:95

问:

我目前正在构建一个小型迷你游戏收集 Web 应用程序,后端带有 Fat Free Framework(这在这里应该不太重要)。

现在在游戏中,您还可以达到高分 - 在完成后发送高分目前看起来像这样:

      $.ajax({
        "url": "/submitHighscore",
        "type": "post",
        "data": {
            "game": "Tetris",
            "score": player.score
        }
    });

然后,在 /submitHighscore 路由中,我收到该请求并将信息输入数据库。现在,有人可以拦截该请求并更改游戏和分数,以不同的分数和游戏进入数据库,这并不算太好。

我已经有的想法只是将这两件事存储在会话变量中,因此只需将名称为 gamePlaying 的会话设置为当前游戏(一旦他们启动它),并在发送高分之前为分数设置会话变量。这样,我根本不需要传递任何参数,它们都存储在会话中。

但是,我不确定,如果这是最好的解决方案 - 还包括相当多的代码重写。

您有更好的主意来防止操纵 POST 请求吗?

php post fat-free-framework websecurity

评论

0赞 Pushkraj Jori 12/13/2022
您可以执行 CSRF、OAuth 或创建一些疯狂的东西,例如获取用户设备 ID、加密它、将其发送到服务器、从服务器获取唯一 ID、将其发送到用户设备并开始通信,这样就没有人可以干扰请求。没有那把钥匙。
0赞 Bhaumik Pandhi 12/13/2022
CSRF 是一个很好的解决方案,可以防止任何用户直接触发请求。
1赞 ikkez 12/14/2022
CSRF 对于防止用户伪造他们的高分是无用的。唯一的方法是处理服务器端的所有事情,如果这对你的游戏来说是可能的,这可能需要你提到的大量重写。

答: 暂无答案