|
|
|
| Как можно сделать что-бы $HTTP-REFERER не передавалась ?
На сайтах САР при серфинге есть такая функция "отключить передачу $HTTP-REFERER", тогда на просматриваемом сайте не она не определяется и вместо нее, если записавать в БД кто и откуда пришел, идет просто пустата.
Просто на одном форуме где как бы собираются, по некоторым понятиям, крутые программисты на PHP был затронут этот вопрос, так же там был затронут вопрос можно ли эту переменную подменить и все в один голос кричали, что затереть, а тем более подменить ее нельзя и что это все бред сумашедшыч кто утверждает обратное.
Но вот я знаю что в САР она точно отключается !!!
Насчет подмены ничего утверждать не буду, так как не знаю.
Вот и хотелось бы выиснить этот вопросик. Если возможно конечно :) | |
|
|
|
|
автор: isset (05.02.2005 в 18:59) |
|
|
для: Valeri
(05.02.2005 в 18:56)
| | Подменить легко :) | |
|
|
|
|
|
|
|
для: isset
(05.02.2005 в 18:59)
| | а поподробнее можно ? | |
|
|
|
|
|
|
|
для: Valeri
(05.02.2005 в 18:56)
| | Это определяется отправляет клиент заголовок, например, "Referer:http://www.google.ru/" или нет. Так как это ваша собственная машина вы можете отправлять всё что угодно - никто это проконтролировать не может, точно так же как никто не может проконтролировать заголовки отправляемые из PHP-скрипта:
<?php
header("Referer:http://www.google.ru/");
?>
|
В IE такой опции нет, но в других браузерах опцию отключения referer можно найти без труда (помоему в Opera, точно есть), наверняка так же в Internet имеется достаточное количество прокси-серверов, отбрасывающих эту информацию. Вся информация которая отправляется от клиента может быть без особых усилий отредактирована, особенно, если в качестве клиента выступает PHP-скрипт. | |
|
|
|
|
|
|
|
для: cheops
(05.02.2005 в 22:15)
| | а как это прилепить если идет переход по ссылке ? | |
|
|
|
|
|
|
|
для: Valeri
(06.02.2005 в 05:07)
| | Только если это будет не чистая ссылка, а ссылка на специльный скрипт, который обрежет REFERER и перенаправит посетителя на нужную страницу. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(06.02.2005 в 12:26)
| | и как этот специальный скрипт должен выглядить ? | |
|
|
|
|
|
|
|
для: Valeri
(06.02.2005 в 19:05)
| | так что, так и не скажите как этот скрипт должен выглядить ? | |
|
|
|
|
|
|
|
для: Valeri
(08.02.2005 в 06:52)
| | Потерял вашу тему :( Постараюсь сегодня ответить. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(08.02.2005 в 09:20)
| | буду вам признателен | |
|
|
|
|
|
|
|
для: Valeri
(06.02.2005 в 05:07)
| | Затереть Referer оказалось легко.
Создаем специальный файл ref.php, который перенаправляет запрос на новую страницу, но без referera/
<?
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_GET['link']."'>
</HEAD>";
?>
|
И во всех ссылках пишем URL следующего вида:
<a href="ref.php?link=http://www.domain.ru/page.php">Ссылка</a>
|
Таким образом, переменная $_SERVER['HTTP_REFERER'] затирается.
Но это, конечно, не очень хороший способ. Можно попробовать с помощью настроек сервера затирать или подменять referer. Попробую вечером посмотреть. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(08.02.2005 в 16:34)
| | вот с помощью настроек снрвера это было бы более интересно | |
|
|
|
|
|
|
|
для: Valeri
(08.02.2005 в 17:10)
| | А нет, про настройки сервера это я не правильно сказал.
Суть именно в том, что значание REFERER можно изменить только специальным скриптом. Таким образом, если ссылка будет чистая и будет указывать сразу на другой сайт, то изменить REFERER программным способом никак нельзя. Посколько обращения ни к нашему серверу, ни к специальному скрипту нет. Обращение идет сразу на другой сайт.
А вот если сделать пересылку через специальный скрипт (как я и проводил в примере), то все можно поменять.
Либо другой вариант: использовать специальный браузер, который будет обрезать REFERER-ы, так как именно браузер передает эти значения. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(09.02.2005 в 00:49)
| | О.К.
Большое Вам спасибо. Поэксперементирую. | |
|
|
|
|
|
|
|
для: Valeri
(08.02.2005 в 17:10)
| | Естественно писать ссылки в этом формате и тем более менять все ссылки на странице совсем не лучший вариант. Но можно менять их автоматически.
При формировании страницы можно задерживать выход страницы с помощью функции ob_start(). Страница при этом помещается в буфер и с ней можно работать как с текстовой переменной. Далее пропустить эту переменную через регулярное выражение, которое заменит все "внешние" ссылки на ссылки через специальный скрипт. И после замены вывести страницу в браузер. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(09.02.2005 в 07:45)
| | что то как не кручу нечего не получается :(
вот конкретный пример
<frameset rows="70,*,0" frameborder=yes border="0" bordercolor="#9A9AFE">
<frame name="topFrame" scrolling="NO" noresize src="blablabla.php" marginheight="0" marginwidth="0">
<frame src="$linck" name=msg scrolling=yes marginwidth=0 marginheight=0>
</frameset>
<frame name='hideFrame' MARGINWIDTH='0' MARGINHEIGHT='0' SCROLLING='yes' NoResize>
</frameset>
|
как сделать что-бы на сайте $linck не определилась или подменилась $HTTP-REFERER ? | |
|
|
|