Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2008, 13:28   #1
galok
 
Регистрация: 13.02.2008
Сообщений: 7
По умолчанию Скрипт Jump.cgi (или просто редирект)

Помогите нубу с кодом !

Есть скрипт по адресу http://perlwebsite.com/jump.htm, типа бесплатный. Работает очень просто переводит пользователя на конечную ссылку, например:
Код HTML:
http://perlwebsite.com/cgi-bin/jump.cgi?url=http://something.com/page.htm
В итоге этот скрипт обещает, что последний сайт не увидит полной ссылки с которой был произведен переход. Вот код этого скрипта (без лишнего барахла):
Код:
#!/usr/bin/perl

# DO NOT EDIT PAST HERE # (c) http://perlwebsite.com # DO NOT EDIT PAST HERE # (c) http://perlwebsite.com # DO NOT EDIT PAST HERE # (c) http://perlwebsite.com # DO NOT EDIT PAST HERE # (c) http://perlwebsite.com # DO NOT EDIT PAST HERE # (c) http://perlwebsite.com # DO NOT EDIT PAST HERE # (c) http://perlwebsite.com # DO NOT EDIT PAST HERE # (c) http://perlwebsite.com 
@pairs = split(/&/, $ENV{"QUERY_STRING"});foreach $pair (@pairs) {($name, $value) = split(/=/, $pair);$value =~ tr/+/ /;$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;$query{$name} = $value;}if ($query{'url'} eq "") {&noid; exit;}print "Location: $query{'url'}\n\n";sub noid {print "Location: http://perlwebsite.com\n\n";}
В итоге как я не пробовал - этот скрипт не работает (поместил в директорию cgi-bin, назначил 755)... Да и код тут у него по ходу дела сливает инфу хозяину, подразумеваю...

Нужен чистый код, без лишнего, чтобы выполнял такую функцию... :unsure:
galok вне форума Ответить с цитированием
Старый 15.02.2008, 15:28   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Location: http://perlwebsite.com
на
Location: http://ваш_сайт
переименовывать не пробовали?
SkyM@n вне форума Ответить с цитированием
Старый 15.02.2008, 16:18   #3
galok
 
Регистрация: 13.02.2008
Сообщений: 7
По умолчанию

Цитата:
Сообщение от SkyM@n Посмотреть сообщение
Location: http://perlwebsite.com
на
Location: http://ваш_сайт
переименовывать не пробовали?
Что вы имеди ввиду! Не совесм понял?!
galok вне форума Ответить с цитированием
Старый 17.02.2008, 01:38   #4
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

У меня этот скрипт отлично сработал. Делал copy-paste, файлу дал права на запуск.

Код:
http://localhost/cgi-bin/url.pl?url=http://www.google.com
Побежал на ура. Дело не в скрипте, это точно. Возможно в правах.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 17.02.2008, 13:21   #5
galok
 
Регистрация: 13.02.2008
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
У меня этот скрипт отлично сработал. Делал copy-paste, файлу дал права на запуск.
Код:
http://localhost/cgi-bin/url.pl?url=http://www.google.com
Побежал на ура. Дело не в скрипте, это точно. Возможно в правах.
Этот код фактически наверное рабочий (я больше не проверял его), только ссылку нужно вводить целиком (с http://) просто домен, или домен с www не сработает.
Но я тут на штатовском форуме пообщался с умными людьми...
На самом деле скрипт очень простой - 5 строчек. А в этом накидано непонятно чего... Т.е. там много левого и не зря!
galok вне форума Ответить с цитированием
Старый 17.02.2008, 16:57   #6
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Всё очень легко выясняется. Пишем простейший скрипт по запросу "http://localhost/cgi-bin/jump.pl?url=http://www.google.com":
Код:
#!/usr/bin/perl -w
@pairs = split(/&/, $ENV{"QUERY_STRING"});
print "Content-Type: text/html\n\n";
foreach $pair (@pairs) {($name, $value) = split(/=/, $pair);
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $query{$name} = $value;
    print "$name = $value <br>\n";}
И узнаём что отправляет скрипт:
Цитата:
url = http://www.google.com
Я, если честно, в Перле ни бум бум, стал копаться по мануалам - нашёл вот какую страничку:
http://www.helloworld.ru/texts/comp/...erl2/index.htm

Если посмотришь на "Шаг 2 - Создание скрипта" там точь в точь такой же код, как и в этом скрипте. Этот цикл просто разбивает переменные, которые ты задаёшь в адресной строке. И наоборот, защищает тебя от хака. Так что скрипт вполне безобидный, действующий и вдобавок расчитан на дурака.
Удачи.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 17.02.2008, 19:14   #7
galok
 
Регистрация: 13.02.2008
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
Всё очень легко выясняется. Пишем простейший скрипт по запросу "http://localhost/cgi-bin/jump.pl?url=http://www.google.com":
Я, если честно, в Перле ни бум бум, стал копаться по мануалам - нашёл вот какую страничку:
http://www.helloworld.ru/texts/comp/...erl2/index.htm
Скрипт, который ты выложил Johnatan не работает, ну да ладно...
Гоовришь не силен в перле, я вообще никакой в кодинге !
Цитата:
Этот цикл просто разбивает переменные, которые ты задаёшь в адресной строке. И наоборот, защищает тебя от хака. Так что скрипт вполне безобидный, действующий и вдобавок расчитан на дурака.
Удачи.
Я все таки попробовал еще раз скрипт jump.cgi о котором написал топик. Да он рабочий... Тотлько линк нужно кодировать в процентный формат -без лишних символов, иначе он обрежиться, к примеру на символе "&"!
Код:
Т.е. http://localhost/cgi-bin/jump.cgi?url=http://www.somesite.com/sdljkfhidush&00000000
станет http://www.somesite.com/sdljkfhidush
Но это все чепуха. Главное, то что свою основную функцию этот скрипт все равно не выполняет, а именно (цитата):
"Jump has been designed to prevent other sites logging your content sensitive pages as a refering url.
WHY ? so that they will never be able to find your web page that may have information on it you don't want others viewing."

Фиг с два - как показывал полный линк, так и показывает. Я думал он хоть обрежет до - http://localhost/cgi-bin/jump.cgi
galok вне форума Ответить с цитированием
Старый 17.02.2008, 22:49   #8
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

1) Код который я выложил выше - работает.
2) Как я писал выше, этот скрипт разделяет строку запроса (которая идёт после "?") на составные части. Соответственно если использовать знаки "=" или "&" то скрипт нормально работать не будет. Его нужно подправлять. Но так как я не Перловод, то помочь именно с Перлом не могу.
3) Скрипт скрывает реферал. Я проверил на винде и на Линуксе. Всё прекрасно работает. Не знаю каким образом вы получили реферал после этого скрипта.
4) Если вам очень-очень хочется скрыть реферал без проблем, то можно использовать сервисы наподобие http://anonym.to/? (http://anonym.to/ru.html)
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 17.02.2008, 23:17   #9
galok
 
Регистрация: 13.02.2008
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
3) Скрипт скрывает реферал. Я проверил на винде и на Линуксе. Всё прекрасно работает. Не знаю каким образом вы получили реферал после этого скрипта.
Я попробывал перейти на страницу где лежит линк с поисковика - кое-какую инфу он от него передал в линке, конечно рефер была страница с этим линком. Так дело в том, что рефером была бы моя страница в любом случае - даже и без этого скрипта...
Дело в том, что там сказана, что скрипт скрывает content sensetive pages, дабы никто не мог его проанализировать и соответственно скопировать...
Цитата:
4) Если вам очень-очень хочется скрыть реферал без проблем, то можно использовать сервисы наподобие http://anonym.to/? (http://anonym.to/ru.html)
Не мой вариант пользоваться левыми ресурсами, темболее такими... Это что-то уже для каких-то "черных" вещей...
galok вне форума Ответить с цитированием
Старый 18.02.2008, 00:35   #10
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Мы, возможно, о совершенно разных вещах говорим. Если вы думали, что этот скрипт шифрует код вашей страницы - то это не так. Он лишь скрывает что человек кликнул на ссылку именно на вашем сайте (то есть целевой сайт не узнает, откуда к нему пришёл человек).
Вот простейший код на PHP выполняющий ту же функцию в формате: http://www.mysite.com/?http://www.ot...1111&var2=2222

PHP код:
<?php
header
("Location: ".$_SERVER['QUERY_STRING']);
?>
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
мой сайт взломали и в коды скриптов добавили вот этот скрипт. Что за скрипт? nsbox JavaScript, Ajax 9 21.01.2010 18:19
Локальный редирект сайта kesha Операционные системы общие вопросы 6 28.06.2009 01:08
Просто алгоритм:) Sota Общие вопросы C/C++ 14 11.02.2008 10:45
Просто прошу HELP..... stalker Паскаль, Turbo Pascal, PascalABC.NET 7 13.02.2007 20:23