Перенаправить, если ссылка достигнута с внешнего сайта - PullRequest
1 голос
/ 09 июня 2009

У меня есть страница PHP на веб-сайте, которую я бы хотел, чтобы она была доступна только с другой страницы этого веб-сайта.

Если пользователь щелкает ссылку на страницу или вводит адрес страницы, а не из домена сайта, я бы хотел, чтобы страница перенаправляла пользователя в индекс.

Есть идеи?

Ответы [ 4 ]

3 голосов
/ 09 июня 2009

Что вы могли бы сделать, это использовать сеансы.

сделать индекс установленной переменной

$_SESSION['visitedIndex'] = TRUE;

и тестирование на других страницах:

if(!$_SESSION['visitedIndex']) {
  header('location: ....');
}

убедитесь, что вы делаете это до первого эха.

1 голос
/ 09 июня 2009

Вы также можете создать внутреннюю службу, используя $ hash = timestamp + внутренний секретный ключ или ваше конкретное правило.

Первая страница имеет ссылку http://www.samesite.com/page_2.php?param=hash

Вторая страница декодирует хеш и проверяет временную метку на заданный интервал. В противном случае он отказывается от дисплея.

Как вы знаете, внутренний ключ подделать невозможно.

0 голосов
/ 09 июня 2009

Используйте реферер для этого:

if ($_SERVER['HTTP_REFERER'] != "...") {
    header("LOCATION: othersite");
}
0 голосов
/ 09 июня 2009

Проверить поле 'Реферер'?

Это легко взломать, хотя. Более надежный способ - проверить, не использовался ли используемый сеанс (если ваш сайт назначает их посетителям).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...