PHP как проверить с какой страницы пришел запрос?
Мне нужно убедиться, что запрос в скрип приходит с моего сервера. Я нашел $_SERVER[‘REQUEST_URI’], но он показывает только относительный путь к самому файлу (/order/order.php). Я использую скрипт через ajax, может в этом проблема?
Как мне получить полный путь или как убедиться, что запрос с моего сервера?
- Вопрос задан более трёх лет назад
- 3533 просмотра
- Вконтакте
Однако учтите, что данного свойства может и не быть. Поэтому всегда проверяйте его на наличие.
Если нужна 100% гарантия, отправляйте из вашего скрипта дополнительное свойство, например, referer_id (либо id, чтобы на сервере получить из предопределенного массива саму ссылку, если у вас скрипты расположены в четко определенных местах; либо саму ссылку).
Php откуда пришел запрос
В этом разделе помещены уроки по PHP скриптам, которые Вы сможете использовать на своих ресурсах.
Фильтрация данных с помощью zend-filter
Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Контекстное экранирование с помощью zend-escaper
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Подключение Zend модулей к Expressive
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Совет: отправка информации в Google Analytics через API
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Совет: активация отображения всех ошибок в PHP
При поднятии PHP проекта на новом рабочем окружении могут возникнуть ошибки отображение которых изначально скрыто базовыми настройками. Это можно исправить, прописав несколько команд.
Агент
PHP парсер юзер агента с поддержкой Laravel, работающий на базе библиотеки Mobile Detect.
Как узнать, откуда пришел запрос?
У меня такой вопрос. Как на PHP можно проверить пришел человек на эту страницу с localhost -а или нет. Причем $_SERVER[‘HTTP_REFERER’] использовать нельзя. Также нельзя проводить проверку на 127.0.0.1 . Какие есть еще способы?
![]()
Чтобы узнать посторонний или нет человек запускает скрипт.
Вариант 1: поставить пароль. Либо сессией, либо httppassw’ом.
Вариант 2 (используется в CMS): инклудом подтягивается файл, где задается переменная. Затем, каждый скрипт CMS’ки проверяет наличие переменной.
Вариант 3: все ссылки на сайт должны содержать какой-то get-запрос (href=»site.ru/?partnerId=21534″), значение которого пишется в сессию. Получается вариант 1, только более прозрачный.
Если клиент(браузер) не отправит эту информацию(А многие не отправляют по-умолчанию), узнать ее нельзя. Разве что, с точностью: пришел ли он с вашего сайта или не с вашего. Если информация отправлена, она лежит в HTTP_REFERRER
Как узнать, откуда пришел запрос?
У меня такой вопрос. Как на PHP можно проверить пришел человек на эту страницу с localhost -а или нет. Причем $_SERVER[‘HTTP_REFERER’] использовать нельзя. Также нельзя проводить проверку на 127.0.0.1 . Какие есть еще способы?
Ответы (9 шт):
Если клиент(браузер) не отправит эту информацию(А многие не отправляют по-умолчанию), узнать ее нельзя. Разве что, с точностью: пришел ли он с вашего сайта или не с вашего. Если информация отправлена, она лежит в HTTP_REFERRER
Есть две переменные $_SERVER[‘HTTP_REFERRER’] и $_SERVER[‘REMOTE_ADDR’]
«Надо проверить не посторонний ли человек запускает скрипт на сервере.»
или я не так понял?
Чтобы узнать посторонний или нет человек запускает скрипт.
Вариант 1: поставить пароль. Либо сессией, либо httppassw’ом.
Вариант 2 (используется в CMS): инклудом подтягивается файл, где задается переменная. Затем, каждый скрипт CMS’ки проверяет наличие переменной.
Вариант 3: все ссылки на сайт должны содержать какой-то get-запрос (href=»site.ru/?partnerId=21534″), значение которого пишется в сессию. Получается вариант 1, только более прозрачный.
Вы учли, что если человек просто набрал в адресной строке адрес вашего сайта или его страницы, то такого понятия как $_SERVER[‘HTTP_REFERER’] просто не будет вообще?
Сгенерируйте себе куку и проверяйте ее наличие, чужим куку не давайте и будет вам счастье и без паролей
Вот так посылает запрос браузер:
Обращаю внимание на заголовок host . Да и в самом url адрес есть.
Вопрос актуален для меня. Ищу способ сделать нечтно вроде этого, но пока вот такой какой-то получается. Не уверен что это даст ожидаемый результат, но близок к нему. Во всяком случае SERVER_NAME даёт нужную информацию о имени сервера, осталось только определить эту информацию о сервере запроса. HTTP_HOST даёт не ту информацию.