Как предотвратить вредоносные запросы POST в приложении PHP? - PullRequest
1 голос
/ 26 мая 2020

Я разрабатываю веб-сайт, который работает как онлайн-игра и имеет систему очков. После выполнения определенных действий пользователь получает несколько виртуальных монет, которые хранятся в базе данных 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?

1 Ответ

0 голосов
/ 26 мая 2020

реализовать токен crf или случайно сгенерированный код с учетными данными пользователя и встроить его на страницу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...