![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
mlv11 |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
Прошу помощи в php сокрытии http referer.
Нашла в инет такой php-скрипт
Для тестирования на денвере разместила его в файле noref.php по адресу http://test1.ru/own/lgt/noref.php ============================= Рядышком с ним бросила еще файл dspl_referer.htm с таким содержанием (html+JavaScript)
Этот файл средствами JavaScript сообщает с каким document.referrer к нему пришли. Отмечу, что в JavaScript аналог http referer пишется грамотно с двумя r. ============================= Еще в одном чисто html файле goto_dspl_referer.htm просто ссылки
============================= Вначале мой денвер забуксовал Fatal error: Call to undefined function curl_init(), пришлось его обновить и установить модуль curl_init(). ============================= После установки результат меня не порадовал. Прямой переход и переход через noref.php при клике по ссылкам файла goto_dspl_referer.htm дают в файле dspl_referer.htm одно и то же сообщение ![]() Т.е. переадресация через noref.php не скрывает http referer. ============================= Может быть, я изыскала неточный код noref.php, может быть у кого-нибудь есть работающий? Или вообще иной способ сокрытия. Прошу помочь. ![]() Это сообщение отредактировал(а) mlv11 - 15.8.2012, 15:26 |
||||||
|
|||||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Заголовок referer передается от браузера к серверу, чтобы сервер мог определить откуда был переход.
К браузерному document.referrer он никакого отношения не имеет -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
mlv11 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
По Вашему мнению, значения referer и document.referrer отличаются? Прошу Вас, напишите мне код для размещения в конечном файле dspl_referer.htm, в котором php-средствами сообщается о http referer, что-то типа <? echo referer такой-то ?>, тогда сравним эти значения referer и document.referrer. Я, к сожалению, не пишу php-языком. ![]() |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
mlv11 |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
Спасибо за участие, Ваш код работает в части показа http referer, но если его нет, то не пишет 'No referer', - что-то в этом случае с кодом не то.
![]() ======================== Разместила его в файле dspl_referer_referrer.php с таким содержанием
============================= В новый файл goto_dspl_referer_referrer.htm со ссылками добавила ссылки на него
============================= Временно работа не на Денвере, а онлайн, чтобы Вы протестировали. Выводы пока делать рано, подправьте, пожалуйста, вывод фразы 'No referer'. Тем не менее, предварительный вывод, наверное такой: JavaScript document.referrer и php http referer совпадают при наличии http referer или его отсутствии и различны при его аннулировании файлом noref.php. Т.е. файл noref.php, по-видимому, удаляет только http referer, а document.referrer сохраняется. Еще даю две ссылки для тестирования непосредственно из данного топика dspl_referer_referrer.php через noref.php dspl_referer_referrer.php Это сообщение отредактировал(а) mlv11 - 17.8.2012, 18:04 |
||||
|
|||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Все работает.
![]() ![]() ![]() -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
mlv11 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
Я чуточку изменила код в предыдущем топике. Почему не отображается No referer ?
|
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Пишет 'http_referer=' ? Покажи код noref.php. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
mlv11 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
При переходе по двум ссылкам из данного топика у меня результат такой:
![]() ![]() Если скопировать каждую ссылку и вставить в новое окно браузера, т.е. убрать реферер, то ![]() ![]() Почему во втором и в четвертом рисунках нет сообщения No referer? Что же всё-таки делает файл noref.php, остаётся реферер или нет? Это сообщение отредактировал(а) mlv11 - 17.8.2012, 18:29 |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Убери строчку
Добавлено через 2 минуты и 43 секунды Ты передаешь пустой заголовок referer, а No referer когда его вообще нет. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
mlv11 |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
Если убрать эту строку, то весь смысл файла noref.php пропадет. В Вашем коде, он пишет No referer только в случае отсутствия реферер вообще, а в случае передачи пустой строки реферер, вроде как, есть. Мне нужно, чтобы его не было вообще. Как изменить код в noref.php ? Задача у меня не переход по ссылке, в которой надо устранить реферер, а отображение рисунка <IMG src=http://external_site.com/01.gif> прямая ссылка на 01.gif с внешнего сайта, поименуем его так external_site.com. По-видимому, там стоит проверка на реферер. Вместо рисунка по прямой ссылке выдается сообщение о запрете на его отображение. Хочу сделать так <IMG src=http://ar.16mb.com/own/lgt/noref.php?http://external_site.com/01.gif> через noref.php 01.gif Только надо откорректировать noref.php таким образом, чтобы он выдавал не пустую строку в качестве реферер, а вообще его аннулировал. Потому что если прямая ссылка на рисунок в файле оффлайн, то рисунок отображается нормально, а при выставлении этого файла онлайн - сообщение о запрете его отображения. В оффлайн режиме протокол не http://, а file:///, для этого протокола http referer отсутствует. Пока же noref.php не сводит ситуацию к его отсутствию. Это сообщение отредактировал(а) mlv11 - 17.8.2012, 19:41 |
||||
|
|||||
mlv11 |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
Исправленный код приведен выше, просто вставка php-кода в div контейнере стиля и предваряется http_referer=
|
||||
|
|||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Вообще я просил noref.php, а не dspl_referer_referrer.php.
Ну да ладно, я уже понял. Твой noref.php примитивный прокси. Через curl скачивает страницу и передает в браузер. curl_setopt->CURLOPT_REFERER как раз и отправляет заголовок referer. В твоем случае пустой. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
mlv11 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
Здесь почему-то выдаёт сообщение "Динамические страницы в тэгах IMG запрещены",
поэтому даю ссылку, а не рисунок. Замечательно, мои рисунки стали отображаться, даже этого noref.php достаточно, чтобы снять запрет. Слава Богу, у них там проверка не document.referrer, который вообще не я сно, можно ли изменить. Но хотелось бы подработать noref.php на иные случаи. А что сделать в строке curl_setopt($ch, CURLOPT_REFERER, ""); , если я хочу вставить туда в качестве реферер главную страницу их сайта external_site.com, написать так: curl_setopt($ch, CURLOPT_REFERER, "http://external_site.com/"); или без / в конце или без http:// ? |
|||
|
||||
mlv11 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
Код noref.php не менялся, он в самом верху топика - в первом сообщении. Вы не только читаете php-код, но даже сами пишете. CURLOPT_RETURNTRANSFER - что это в нём? И какой там установлен timeout в строке curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); ? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |