Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 15.02.2008, 14:28   #1
galok
 
Регистрация: 13.02.2008
Сообщений: 7
Репутация: 10
По умолчанию Скрипт 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, 16:28   #2
SkyM@n
Laravel/Vue expert
Профессионал
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Адрес: /dev/random
Сообщений: 2,834
Репутация: 927
По умолчанию

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

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

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

Код:

http://localhost/cgi-bin/url.pl?url=http://www.google.com

Побежал на ура. Дело не в скрипте, это точно. Возможно в правах.
Johnatan вне форума   Ответить с цитированием
Старый 17.02.2008, 14:21   #5
galok
 
Регистрация: 13.02.2008
Сообщений: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
У меня этот скрипт отлично сработал. Делал copy-paste, файлу дал права на запуск.
Код:

http://localhost/cgi-bin/url.pl?url=http://www.google.com

Побежал на ура. Дело не в скрипте, это точно. Возможно в правах.
Этот код фактически наверное рабочий (я больше не проверял его), только ссылку нужно вводить целиком (с http://) просто домен, или домен с www не сработает.
Но я тут на штатовском форуме пообщался с умными людьми...
На самом деле скрипт очень простой - 5 строчек. А в этом накидано непонятно чего... Т.е. там много левого и не зря!
galok вне форума   Ответить с цитированием
Старый 17.02.2008, 17:57   #6
Johnatan
Antimoderаtoris
Профессионал
 
Регистрация: 08.02.2008
Адрес: Испания
Сообщений: 1,251
Репутация: 430
По умолчанию

Всё очень легко выясняется. Пишем простейший скрипт по запросу "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 - Создание скрипта" там точь в точь такой же код, как и в этом скрипте. Этот цикл просто разбивает переменные, которые ты задаёшь в адресной строке. И наоборот, защищает тебя от хака. Так что скрипт вполне безобидный, действующий и вдобавок расчитан на дурака.
Удачи.
Johnatan вне форума   Ответить с цитированием
Старый 17.02.2008, 20:14   #7
galok
 
Регистрация: 13.02.2008
Сообщений: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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, 23:49   #8
Johnatan
Antimoderаtoris
Профессионал
 
Регистрация: 08.02.2008
Адрес: Испания
Сообщений: 1,251
Репутация: 430
По умолчанию

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

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

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

PHP код:
<?php
header
("Location: ".$_SERVER['QUERY_STRING']);
?>
Johnatan вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


03:05.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru