Я разрабатываю веб-сайт, который работает как онлайн-игра и имеет систему очков. После выполнения определенных действий пользователь получает несколько виртуальных монет, которые хранятся в базе данных SQL через страницу с названием «levelup. php».
Проблема в том, что пользователь может напрямую получить доступ к «levelup». php "или даже отправьте злонамеренный почтовый запрос с помощью консоли браузера, набрав что-то вроде этого:
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "levelup.php", true);
xhttp.send();
Как предотвратить это и убедиться, что пользователь действительно выполнил необходимые действия, чтобы заработать score?
ps: это должна быть игра, поэтому добавление чего-то вроде reCAPTCHA не является жизнеспособным решением.
РЕДАКТИРОВАТЬ:
Файл «levelup. php» выглядит следующим образом:
// update level xp
$conn = new mysqli(SERVER, USER, PASS, DB);
$conn->query("update level set xp = xp + 15 where user_id = 1");
$conn->close();
Страница добавляет пользователю 15 баллов при каждом обращении к ней без проверки они играли в игру.
И вот что я делаю в файле javascript после завершения каждой игры:
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "levelup.php", true);
xhttp.send();
Мой вопрос в том, как убедиться, что пользователь играл игра, а не просто доступ к уровню. php?