Прием только определенных запросов AJAX от аутентифицированных пользователей

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

Например:

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

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

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

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

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


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

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

18.08.2008 23:18:02
2 ОТВЕТА
РЕШЕНИЕ

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

7
18.08.2008 23:20:46

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

2
23.01.2013 04:56:22