Я пытаюсь ограничить скорость подачи form's
до одного на пользователя за 120 секунд.
Я думал об использовании переменной $_SESSION
, но я не уверен, как это будет работать, и файлы cookie можно просто удалить. Я предполагаю, что переменная $_SESSION
может быть обработана интуитивно понятным пользователем, просто logging out
и вернувшись обратно.
В настоящий момент я просто теоретизирую, поэтому у меня нет кода.
Как мне обойти мои проблемы?
РЕДАКТИРОВАТЬ —
Причина, по которой пользователь будет запрашивать так часто, заключается в том, что он является базой данных элемента и базы данных. Мне нужно замедлить пользовательские запросы до приемлемой скорости, потому что переходите на 10 запросов / минуту, иначе приложение может быть «запрещено» или запрещено в течение часа.
Переменные $_SESSION
и $_COOKIE
могут быть удалены пользователем, и поэтому их злоупотребляют. Вам нужно хранить отправления где-то на своем сервере. Возможно, с MySQL. Затем выполните проверку перед обработкой формы.
Что-то вроде
SELECT COUNT(*) attempts, MAX(submit_time) last FROM form_submits WHERE user_id = ? AND submit_time > NOW - INTERVAL 2 MINUTE
затем
if ($row['attempts'] > 0) { echo "You must wait " . (time() - strtotime($row['last'])) . " seconds before you can submit this form again."; return; }