Проблема следующая Со страницы сайта с помощью AJAX запроса вызывается скрипт execute_query.php который выполняет sql запрос в базу данных. Скрипту передается параметр query - который содержит запрос к базе данных. Можно ли достоверно убедиться что AJAX запрос пришел от внутреннего скрипта сайта, а не от стороннего скрипта? Для простоты понимания проблемы Если AJAX запрос с методом GET то зарегистрированному пользователю для выполнения своего собственного запроса достаточно лишь виполнить следующий HTTP запрос http://www.site/inner_path/execute_query.php?query=запрос пользователя. Если запрос с методом POST то надо написать простенький HTML документ в котором будет послан AJAX запрос. Единственное что этому припятствует это знание структуры базы данных.
Re: Проверка источника AJAX запроса внутри вызываемого скрип о боже! адресок подкинь? я хочу посмотреть. ))) используй авторизацию чтобы контролировать доступ. твой обработчик AJAX может проверять куки или сессионные данные так же, как любой другой скрипт!
Re: Проверка источника AJAX запроса внутри вызываемого скрип для начала - не надо передавать запрос в открытом виде. передавайте "команду" и "аргументы" для нее а в скрипте - формируйте безопасный запрос
Re: Проверка источника AJAX запроса внутри вызываемого скрип и это тоже. но авторизация прежде всего. иначе любой любопытный х* сможет выполнить любую команду.
Re: Проверка источника AJAX запроса внутри вызываемого скрип Я отметил в вопросе что речи идет о зарегистрированном пользователе. Действия пользователя: зарегистрировался, добавил в браузер закладку, ввел http запрос к скрипту
Re: Проверка источника AJAX запроса внутри вызываемого скрип Конечно это мои домыслы, я же не вижу твой код. Но инфа 100%, ты не проверяешь права пользователя в серверном обработчике AJAX. Иначе твой вопрос вообще не появился бы. И это очень нездо́рово! Добавлено спустя 8 минут 48 секунд: Re: Проверка источника AJAX запроса внутри вызываемого скрипта Достоверно можно узнать только IP пользователя. И то, скорее IP последнего сегмента в цепочке прокси. Адрес страницы-источника точно недостоверен. Есть методы защиты запросов через различные токены, но, бро, это просто вариации на тему авторизации! Пользователь, а не скрипт, должен быть (1) идентифицирован и (2) иметь право на действие.
Re: Проверка источника AJAX запроса внутри вызываемого скрип Вопрос из разряда, как правильно присунуть, сверху или снизу? но эффект то один и тот же : "попадание в дырку". Я выделил твою следующую проблему, меняй подход и реализуй иначе. Серьёзно.
Re: Проверка источника AJAX запроса внутри вызываемого скрип Забей в сессию случайную строку, и отправляй эту строку с любыми запросами AJAX, POST, PUT. И проверяй если строка из сессии и строка из запроса не совпадают, значит запрос кто то пытается подставить.
Re: Проверка источника AJAX запроса внутри вызываемого скрип Как будто сложно посмотреть в клиенте отправляемые данные и найти эту случайную строку.
Re: Проверка источника AJAX запроса внутри вызываемого скрип Я читал но видимо не хрена не понял http://raz0r.name/articles/zashhita-ot-csrf/ Почти везде описывается этот метод как защита от CSFR Добавлено спустя 2 минуты 9 секунд: Re: Проверка источника AJAX запроса внутри вызываемого скрипта Зачем его тогда используют, если он не помогает? Тот же csrf_field() из laravel.
Re: Проверка источника AJAX запроса внутри вызываемого скрип Да всё так, только вдумчиво. Чтобы не получилось, что ты стоишь в защитной каске и при этом голый. Добавлено спустя 9 минут 9 секунд: Re: Проверка источника AJAX запроса внутри вызываемого скрипта http://en.wikipedia.org/wiki/Cross-site_request_forgery#Prevention viewtopic.php?f=5&t=42906#p343297