На сайте имеется закрытая для общего доступа часть. По сути это некая панель управления, разделы которой подгружаются через AJAX.
И самое интересное здесь - как ограничить чужим юзерам обращения к аяксовому скрипту. Даже не ограничить, а отфильтровать своего и чужих так сказать.
Юзаю такую схему:
Если юзер залогинен на сайте, то на статичной странице панели управления генерируется JS код вида:
CODE (
javascript):
скопировать код в буфер обмена
$.ajax({
type: "POST",
url: "/скрипт.php",
data: "session=$session_hash&serv_hash=$serv_hash&serv_id=$serv_id",
success: function(msg){
$("#div_for_ajax_" + action).html(msg);
}
});
Где
session=$session_hash - рандомная строка для сессии в md5.
serv_hash=$serv_hash - md5 с солью и уникальным номером продукта(которым управляет панелька
) - $serv_id. Если юзер не залогинен на сайте, то хэш не генерируется, а подставляется заведомо неверная рандомная строка.
Скрипт на серверной стороне проверяет соответствие отосланной через AJAX сессии и хранящейся у вебсервера сессии, и если они не совпадают, отфутболивает запрос.
Далее проверяется соответствие $serv_hash. Тот хэш, что был отослан через AJAX генерируется только залогиненным хозяевам продукта на статичной странице панели управления.
Получается с виду, что пролезть вроде бы и негде, но я все же сомневаюсь в AJAX'e.
Посоветуйте возможные пути решения такой задачи, или укажите на грубые ошибки в алгоритме, если они есть. Заранее спасибо!
P.S. не могу прямо спать спокойно, не доверяю вот AJAX'y и все. Как вариант думал проинклудить скрипт авторизации в аяксовом скрипте и проверить права юзера. Но фобия AJAX'a не позволяет