Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите скрыть http referer document.referrer, Прошу помочь в настройке php скрипта 
:(
    Опции темы
mlv11
Дата 15.8.2012, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2012

Репутация: нет
Всего: нет



Прошу помощи в php сокрытии http referer.

Нашла в инет такой php-скрипт  
Код

<?
$url = $_SERVER["QUERY_STRING"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, "");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>


Для тестирования на денвере разместила его в файле noref.php по адресу
http://test1.ru/own/lgt/noref.php
=============================
Рядышком с ним бросила еще файл dspl_referer.htm с таким содержанием
(html+JavaScript)

Код

<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META name=Language content=ru></HEAD>
<BODY>
<DIV id=Div_ref align=left class=infhead></DIV>
<!-- ~~~~~~ -->
<script type=text/javascript><!-- 
//~~~
function Dspl_referer(){
url_ref=document.referrer;
if(url_ref!=''){cod="document.referrer="+url_ref+"."}
else{cod="document.referrer отсутствует."}
idi='Div_ref';document.getElementById(idi).innerHTML=cod;
}
Dspl_referer();
//~~~
//--></SCRIPT>
<!-- ~~~~~~ -->
</BODY></HTML>


Этот файл средствами JavaScript сообщает с каким document.referrer к нему пришли.
Отмечу, что в JavaScript аналог http referer пишется грамотно с двумя r.
=============================
Еще в одном чисто html файле goto_dspl_referer.htm
просто ссылки
Код

<A target=_blank href=http://test1.ru/own/lgt/dspl_referer.htm>dspl_referer.htm</A><BR>
<A target=_blank href=http://test1.ru/own/lgt/noref.php?http://test1.ru/own/lgt/dspl_referer.htm>через noref.php dspl_referer.htm</A><BR>

=============================
Вначале мой денвер забуксовал
Fatal error: Call to undefined function curl_init(), пришлось его обновить и установить модуль curl_init().
=============================
После установки результат меня не порадовал.
Прямой переход и переход через noref.php при клике по ссылкам файла goto_dspl_referer.htm
дают в файле dspl_referer.htm одно и то же сообщение

 smile  document.referrer=http://test1.ru/own/lgt/goto_dspl_referer.htm .

Т.е. переадресация через noref.php не скрывает http referer.
=============================
Может быть, я изыскала неточный код noref.php, может быть у кого-нибудь есть работающий?
Или вообще иной способ сокрытия. Прошу помочь. smile 

 



Это сообщение отредактировал(а) mlv11 - 15.8.2012, 15:26
PM MAIL   Вверх
Чучмек
Дата 15.8.2012, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Заголовок referer передается от браузера к серверу, чтобы сервер мог определить откуда был переход.
К браузерному document.referrer он никакого отношения не имеет


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mlv11
Дата 16.8.2012, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2012

Репутация: нет
Всего: нет



Цитата(Чучмек @ 15.8.2012,  21:48)
Заголовок referer передается от браузера к серверу, чтобы сервер мог определить откуда был переход.
К браузерному document.referrer он никакого отношения не имеет

По Вашему мнению, значения referer и document.referrer отличаются?
Прошу Вас, напишите мне код для размещения в конечном файле dspl_referer.htm,
в котором php-средствами сообщается о http referer, что-то типа <? echo  referer такой-то ?>,
тогда сравним эти значения referer и document.referrer. Я, к сожалению, не пишу php-языком. smile 
PM MAIL   Вверх
Чучмек
Дата 17.8.2012, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Код

<?php
echo isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'No referer';
?>



--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mlv11
Дата 17.8.2012, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2012

Репутация: нет
Всего: нет



Спасибо за участие, Ваш код работает в части показа http referer, но если его нет, то не пишет 'No referer', - что-то в этом случае с кодом не то. smile 
========================
Разместила его в файле dspl_referer_referrer.php с таким содержанием
Код

<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META name=Language content=ru><META name=Resource-Type content=document>
<STYLE><!--
.infhead {color:#2E3D62;line-height:12px;font-family:tahoma,verdana,arial,'ms sans serif',sans-serif;text-align:center;font-weight:600;font-size:10px}
P       {text-indent:11px;margin:0px;padding-top:2px}
--></STYLE></HEAD>
<BODY style='background:#B5B5B5' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0>
<!-- ~~~~~~ -->
<DIV id=Div_ref align=left class=infhead></DIV>
<!-- ~~~~~~ -->
<script type=text/javascript><!-- 
//~~~
function Dspl_referer(){
url_ref=document.referrer;
if(url_ref!=''){cod="document.referrer="+url_ref+"."}
else{cod="document.referrer отсутствует."}
idi='Div_ref';document.getElementById(idi).innerHTML=cod;
}
Dspl_referer();
//~~~
//--></SCRIPT>
<!-- ~~~~~~ -->
<DIV align=left class=infhead>
http_referer=
<?php
echo isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'No referer';
?>
</DIV>
<!-- ~~~~~~ -->
</BODY></HTML>

=============================

В новый файл  goto_dspl_referer_referrer.htm   со ссылками добавила ссылки на него
Код

<A target=_blank href=http://ar.16mb.com/own/lgt/dspl_referer.htm>dspl_referer.htm</A><BR>
<A target=_blank href=http://ar.16mb.com/own/lgt/noref.php?http://ar.16mb.com/own/lgt/dspl_referer.htm>через noref.php dspl_referer.htm</A><BR>

<A target=_blank href=http://ar.16mb.com/own/lgt/dspl_referer_referrer.php>dspl_referer_referrer.php</A><BR>
<A target=_blank href=http://ar.16mb.com/own/lgt/noref.php?http://ar.16mb.com/own/lgt/dspl_referer_referrer.php>через noref.php dspl_referer_referrer.php</A><BR>

=============================
Временно работа не на Денвере, а онлайн, чтобы Вы протестировали.

Выводы пока делать рано, подправьте, пожалуйста, вывод фразы '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
PM MAIL   Вверх
Чучмек
Дата 17.8.2012, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Все работает.
user posted image
user posted image
user posted image


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mlv11
Дата 17.8.2012, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2012

Репутация: нет
Всего: нет



Я чуточку изменила код в предыдущем топике. Почему не отображается No referer ?
PM MAIL   Вверх
Чучмек
Дата 17.8.2012, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Цитата(mlv11 @  17.8.2012,  17:54 Найти цитируемый пост)
Я чуточку изменила код в предыдущем топике. Почему не отображается No referer ? 


Пишет 'http_referer=' ?
Покажи код  noref.php.


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mlv11
Дата 17.8.2012, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2012

Репутация: нет
Всего: нет



При переходе по двум ссылкам из данного топика у меня результат такой:

user posted image
user posted image

Если скопировать каждую ссылку и вставить в новое окно браузера, т.е. убрать реферер, то
user posted image
user posted image

Почему во втором и в четвертом рисунках нет сообщения No referer? Что же всё-таки делает файл noref.php, остаётся реферер или нет?

Это сообщение отредактировал(а) mlv11 - 17.8.2012, 18:29
PM MAIL   Вверх
Чучмек
Дата 17.8.2012, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Убери строчку 
Код

curl_setopt($ch, CURLOPT_REFERER, "");  


Добавлено через 2 минуты и 43 секунды
Ты передаешь пустой заголовок referer, а No referer когда его вообще нет.


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mlv11
Дата 17.8.2012, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2012

Репутация: нет
Всего: нет



Цитата(Чучмек @ 17.8.2012,  18:21)
Убери строчку 
Код

curl_setopt($ch, CURLOPT_REFERER, "");  


Добавлено @ 18:24
Ты передаешь пустой заголовок referer, а No referer когда его вообще нет.

Если убрать эту строку, то весь смысл файла 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
PM MAIL   Вверх
mlv11
Дата 17.8.2012, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2012

Репутация: нет
Всего: нет



Цитата(Чучмек @ 17.8.2012,  18:18)
Пишет 'http_referer=' ?
Покажи код  noref.php.

Исправленный код приведен выше, просто вставка php-кода в div контейнере стиля и предваряется
http_referer=
Код

<DIV align=left class=infhead>
http_referer=
<?php
echo isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'No referer';
?>
</DIV>

PM MAIL   Вверх
Чучмек
Дата 17.8.2012, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Вообще я просил noref.php, а не dspl_referer_referrer.php.
Ну да ладно, я уже понял.
Твой noref.php примитивный прокси. Через curl скачивает страницу и передает в браузер.
 curl_setopt->CURLOPT_REFERER как раз и отправляет заголовок referer. В твоем случае пустой.



--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mlv11
Дата 17.8.2012, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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:// ?
PM MAIL   Вверх
mlv11
Дата 17.8.2012, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.7.2012

Репутация: нет
Всего: нет



Цитата(Чучмек @ 17.8.2012,  20:41)
Вообще я просил noref.php, а не dspl_referer_referrer.php.
Ну да ладно, я уже понял.
Твой noref.php примитивный прокси. Через curl скачивает страницу и передает в браузер.
 curl_setopt->CURLOPT_REFERER как раз и отправляет заголовок referer. В твоем случае пустой.

Код noref.php не менялся, он в самом верху топика - в первом сообщении.
Вы не только читаете php-код, но даже сами пишете. 
CURLOPT_RETURNTRANSFER - что это в нём? И какой там установлен timeout в строке
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); ?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1172 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.