Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запретить доступ напрямую к php-скрипту кроме JS скрипта(AJAX)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Magazin
Отправлено: 28 Октября, 2013 - 14:48:43
Post Id


Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Здравствуйте! Насколько я понимаю, если запретить доступ к файлу(php) напрямую с помощью .htaccess, то JS скрипты не смогут получить к нему доступ (AJAX запрос). Каким способом можно запретить доступ к php файлу напрямую, чтобы JS скрипты могли иметь к нему доступ? Или это невозможно? Заранее спасибо
 
 Top
esterio
Отправлено: 28 Октября, 2013 - 15:04:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




проверить хидер
http://davidwalsh[dot]name/detect-ajax
 
 Top
Ch_chov
Отправлено: 28 Октября, 2013 - 15:05:10
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Можете проверять в скрипте значение $_SERVER['HTTP_X_REQUESTED_WITH'], но это не является защитой.
 
 Top
EuGen Администратор
Отправлено: 28 Октября, 2013 - 15:59:58
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Никак.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
teddy
Отправлено: 28 Октября, 2013 - 16:44:55
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Можно запретить доступ к файлу напрямую, но при этом разрешить осуществлять ajax запрос в этот файл.

Как известно браузер не обрабатывает хеш в адресной строке(#)

Тоесть если у нас есть папка с файлом куда должен обращаться скрипт по аяксовому запросу, мы можем задать ей имя #ajaxfolder и разместить в ней тот файл, к которому должно будет происходить обращение. А в самом скрипте при обращении аяксом указать путь к этому файлу следующим образом: /#ajaxfolder/file.php

Все корретно обработается и доступа из вне пользователь не получит.
EuGen пишет:
Никак.

поправьте если ошибаюсь

(Отредактировано автором: 28 Октября, 2013 - 16:45:54)

 
 Top
IllusionMH
Отправлено: 28 Октября, 2013 - 17:00:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




teddy, а мне религиозные взгляды должны помешатm подсмотреть какие запросы шлет ajax, а потом отправить заголовки используя curl?
 
 Top
teddy
Отправлено: 28 Октября, 2013 - 17:06:29
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




IllusionMH
Честно говоря не очень понял... если отправленные данные ожидаются на сервере, то ничего страшного я в этом не вижу, а если не ожидаются, то они просто вылетят в трубу...

ТС хотел запретить обращение site.ru/file.php и при этом не лишаться возможности отправлять ajax запрос на этот файл Закатив глазки
 
 Top
IllusionMH
Отправлено: 28 Октября, 2013 - 17:14:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




teddy, как уже много раз писали выше: ничто не помешает злоумышленнику пользоваться этим файлом на свое усмотрение, только жесткое фильтрование приходящих данных.
Чем же AJAX запрос принципиально отличается от открытия страницы в браузере?
Так что файл либо доступен, либо недоступен.

(Отредактировано автором: 28 Октября, 2013 - 17:14:54)

 
 Top
teddy
Отправлено: 28 Октября, 2013 - 17:16:31
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




IllusionMH пишет:
только жесткое фильтрование приходящих данных.

Ну это само собой Улыбка
teddy пишет:
если не ожидаются, то они просто вылетят в трубу...

тут я это и имел ввиду)
 
 Top
esterio
Отправлено: 28 Октября, 2013 - 23:30:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Дык AJAX = HTTP, понятно что с помощю CURL-а можно семулировать любой запрос
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB