【发布时间】:2023-01-03 01:48:00
【问题描述】:
我在不使用框架的情况下使用 javascript、html、css 和 PHP 创建了一个记忆游戏,我使用 php 将玩家姓名和分数保存到 MySql 数据库中,我从我的 javascript 获取这些变量并使用它们发送jQuery Ajax 发布请求这就是我的代码的样子:
$("#submitScore").on("click", function() {
let playerName = $('#playerName').val();
if(isEmptyOrSpaces(playerName)){
playerName = "Unknown";
}
let data = {"player_name": playerName, "score": totalScore};
$.post("./backend/save_score.php", data, function(){
fetchHighScores();
$("#submitScore").prop('disabled', true);
});
});
一切正常我唯一的问题是任何人都可以发送一个ajax请求使用开发控制台,所以如果有人将此行放入控制台并按回车键
$.post("./backend/save_score.php", {"player_name": "Cheater", "score": 1111111111});
它将被保存到我的数据库中,我确信有一个解决方案,我搜索了 CSRF 攻击,但我没有得到正确的答案我是 Ajax 世界的新手,我怎样才能防止这种行为?我不想使用框架让我的游戏尽可能简单?提前致谢
【问题讨论】:
标签: javascript php jquery ajax xmlhttprequest