Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Ограничение доступа к php скрипту


Автор: Machaon 5.5.2013, 22:38
Есть php скрипт.

из JS выполняется GET запрос к нему:

Код

("#block").load('func.php','test=blabla');


Собственно вопрос как в коде php можно ограничить вывод так чтобы результат отдавался только при запросе из JS ?

Автор: Arantir 5.5.2013, 23:08
Для начала стоит заметить, что физической разницы между JS- и браузерным запросом нет. Так же, как между браузерным и заходом на сайт гугла.

Все порядочные браузеры добавляют в xmlHttpRequest соответствующий заголовок
Код

if ($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest') {
    // Запрос сделан через Ajax
}

Если заголовка нет, то запрос точно не из под браузерного JavaScript, но обратное неверно — любой заголовок можно подделать.

Автор: Machaon 5.5.2013, 23:12
Спасибо.

Автор: Nikius 7.5.2013, 11:57
Проверка $_SERVER[‘HTTP_X_REQUESTED_WITH’] - не панацея. Такой заголовок отправляется не всегда. Так что если надо быть уверенным в том, что ни один запрос не потеряется, лучше использовать простой флаг. То есть вмсте с запросом отправлять дополнительную переменную (например, ajax=1). Вот по ней и определеть откуда пришел запрос.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id5186b55d6ccc19ac27000002#findElement_E7045_5188c1dd6ccc19a87700025b_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)