Принимает только определенные ajax-запросы от прошедших проверку подлинности пользователей

StackOverflow https://stackoverflow.com/questions/15366

  •  08-06-2019
  •  | 
  •  

Вопрос

Какова наилучшая практика для обеспечения того, чтобы определенные вызовы ajax на определенные страницы принимались только от аутентифицированных пользователей?

Например:

Допустим, у меня есть главная страница под названием blog.php (Я знаю, креативность изобилует).Давайте также предположим, что есть страница под названием delete.php который ищет параметр post_id а затем удаляет какую-то запись из базы данных.

В этом очень надуманном примере есть некоторый механизм на blog.php, который отправляет запрос через ajax на delete.php для удаления записи.

Теперь этот механизм будет доступен только прошедшим проверку подлинности пользователям на blog.php.Но что мешает кому-то просто позвонить delete.php с кучей случайных чисел и удалить все с сайта?

Я провел быстрый тест, в котором я установил переменную сеанса в blog.php, а затем выполнил ajax-вызов delete.php, чтобы вернуть, была ли установлена переменная сеанса или нет (это было не так).

Каков общепринятый способ справиться с подобными вещами?


ОК.Должно быть, я сошел с ума, когда попробовал это в первый раз.

Я только что провел еще один тест, подобный тому, который я описал выше, и он сработал отлично.

Это было полезно?

Решение

Вы были правы, пытаясь использовать переменные сеанса.Как только ваш пользователь пройдет аутентификацию, вы должны сохранить эту информацию в его сеансе, чтобы при каждом последующем просмотре страницы это было видно.Убедитесь, что вы звоните session_start() на обеих страницах (blog.php и delete.php) перед обращением $_SESSION.Также убедитесь, что у вас включены файлы cookie - и если нет, вам следует передать дополнительный параметр в строке запроса, обычно PHPSESSID=<session_id()>.

Другие советы

Не рекомендуется полагаться на сеансы аутентификации без выполнения дополнительных действий.Читайте больше на.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top