Вопрос

Можно ли проверить, кто входит на ваш сайт в PHP. У меня есть веб-приложение (написанное на PHP), которое разрешает вход только пользователям с определенных веб-сайтов. Можно ли получить реферальные сайты, изучив объект _Request ? Если да, то как?

Это было полезно?

Решение

Да, но имейте в виду, что некоторые прокси и другие вещи удаляют эту информацию, и ее легко подделать. Поэтому никогда не полагайтесь на это. Например, не думайте, что ваше веб-приложение защищено от CSRF , потому что вы проверяете ссылающийся на ваш собственный сервер.

$referringSite = 

Да, но имейте в виду, что некоторые прокси и другие вещи удаляют эту информацию, и ее легко подделать. Поэтому никогда не полагайтесь на это. Например, не думайте, что ваше веб-приложение защищено от CSRF , потому что вы проверяете ссылающийся на ваш собственный сервер.

<*>

Если вы хотите разрешить запросы только от определенного домена, вам нужно проанализировать некоторые URL-адреса, чтобы получить домен верхнего уровня. Как я узнал больше, это можно сделать с помощью PHP parse_url () . . / р>

Как andyk указывает в комментариях, вам также нужно будет указать www.example.com и пример. ком.

SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?

Если вы хотите разрешить запросы только от определенного домена, вам нужно проанализировать некоторые URL-адреса, чтобы получить домен верхнего уровня. Как я узнал больше, это можно сделать с помощью PHP parse_url () . . / р>

Как andyk указывает в комментариях, вам также нужно будет указать www.example.com и пример. ком.

Другие советы

Хотя вы можете посмотреть $ _ SERVER ['HTTP_REFERER'] для получения ссылающегося сайта, не ставьте на него ферму. Браузер устанавливает этот заголовок, и он легко подделывается.

Если крайне важно, чтобы ваш сайт просматривали только люди, пришедшие от определенных рефералов, не используйте этот метод. Вам нужно будет найти другой способ, например, обычную аутентификацию, защитить свой контент. Я не говорю, что вы не должны использовать эту технику, просто имейте в виду, что она не защищена от ошибок.

Кстати, вы также можете блокировать рефереры на уровне apache , используя mod_rewrite .

Вы не можете доверять рекомендателю. Несмотря на то, что он поступил из массива $ _ SERVER , на самом деле это значение, предоставленное пользователем / браузером, и его легко подделать, используя такие вещи, как Firefox RefControl addon .

Вам нужно проверить массив $ _SERVER на наличие ключа HTTP_REFERER.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top