Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужен Антиличь, хороший Антиличь,
.:LAVteam:. > Интернет > Web-программирование
b00ste®
Тащат многие, притом неразбираясь, что сам писал, что нет, притом не мелкие порталы, а одни из лидеров, одни помногу , другие покапельке в перемешку, но свои ошибки орфографические ведб легко узнать, поэтому нужен скрипт.. И не такой как в нюке, а что-то помощнее, как на ВЗОРе, или у КпНемо стоит. Не только чтоб ссылки не видно, но чтоб еще ниоткуда больше, как с указанной страницы непускал, а то если тута расшириться еще немного, и начать хранить у себя, то кранты будут.
Есть идеи где достать, или мож кто написать может?
ako
Сразу говорю - с проблемой знаком только поверхностно, но оно мне интересно. :-)

Как я понял ты хочеш закрыть доступ к сайту всякого рода скриптам скачивающим контент и потом использующим его?

Если так то имхо весьма не простая задача...

Варианты решения которые я вижу(самописные):

Конфиг сервера править можеш?
Можно придумать как с помощью апача привязку к рефереру.
Возможно структуру сайта менять придется. Хотя с другой стороны если делать структурировано и по рефереру -
1. Возможно потеряеш посетителей с поисковиков, ибо даже если сам поисковик будет кореректно работать с ним,
то уж у клиента пришедшего с поисковика там явно будет что-то от лукавого...
2. Помоему весьма просто подделать. Т.е. вычислить систему и пользоватся ей в тех же скриптах.
Здесь уже вопрос в том насколько интересны данные с твоего сайта.

Второй вариант без переконфигурирования сервера, но с применением PHP на каждой странице:
На части страниц к которым открыт "свободный" доступ при заходе клиента открываем сессию, для интереса и пущей
надежности там можно сохранить какие-нибуть данные типа сегодняшней даты или временного пароля
("полустатического" т.е. он должен меняться, но не слишком часто дабы доставлять как можно меньше неприятностей
посетителям оказавшимся на сайте во время его смены)
На "приватных" страницах - проверяем наличае сессии и данные в этой сессии ("пароль") если что-то не верно (нет сессии
или пароль не тот) - отсылаем на начальную страницу раздела/сайта.
Преимущества этого способа в том что мы добавляем некоторые динамические данные поддержку которых нагородить
несколько труднее чем просто реферера (который можно просто вычислить)
Минусы те же что и у предыдущего способа, за дополнением того что тут поисковикам придется еще более туго и если
реферер они еще теоретически могут поддерживать (не уверен, точно не знаю), то с сессиями им придется туговато.
Сессии разумеется должны основыватся на куках, а не на линках.

А можно оба способа скомбинировать. Причем каким нибуть извращенным способом. Навроде - в сессии вместо или
вместе с "паролем" держать то что должно приходить в поле referer, потом сравнивать с реальным реферером и
на основе этого делать выводы.

2All: Интересна критика идей... :-)
Lav
Привязка к рефереру самое лучшее и простое. Я так скоро у себя сделаю.
НО и это можно обойти. Попробуй яву...
b00ste®
ako
Немного за глубоко понял проблему...

Имелось ввиду не кража конфиденциальной информации, а всего лишь банальное тащение прог(линков) с сайта вместе с описанием.
Нащет описания, это не являеться проблемой, но вот когда линки на показе, то грех чего и "нетаскануть", а так если это длительно надо копаться, и тд, пока увидишь "настоящий" линк, то кому это надо, если навалом сайтов с неприкритыми линками, такими теперь у меня, или в крайнем случае с кнопочкой Скачать, что не составляет проблем перехватить.
Сам я, в "web"-програмировании неочень, больше игрался с Visual Studio и подобным, не затрагивая JAVA и прочие, поэтому что-то "скомбиновать" самому, будет затруднительно, вот я и спросил, может кто имеет/знает где/может написать скрипт, который повеситься на кнопочку Download, и только "ей будет отдавать файл", или на крайняк, просто по реферу...
Но как упомянул, подсказка направления решения проблемы, меня неочень спасет, нужноб было уже готовое решение...(в смысле написанный скрипт).
ako
b00ste®
Тоесть тебя интересуют не столько авторские права на описания, сколько то что на твой сайт дают прямые линки с различных порталов?

Тогда здесь можно обойтись скриптиком на download.
Переделать все ссылки вида files/file.rar на например download.php?file=file.rar

Сам скриптик будет довольно простым - его задача - брать файлик из отдельной директории закрытой с помощью например .httpacces и отдавать его клиенту предварительно проверив referer.
Так же не слишком трудно сделать чтобы оно отдавалось и с докачкой.

Как тебе такой вариант?

А насчет готового решения - сейчас попробую написать.
Сроки - вопрос свободного времени.
b00ste®
Нащет закрытой директории, это как раз то что надо, так как это защита от того, чтоб не брали с "не тем" рефером, а вот можно ли как-нибудь скрыть от "непросвещенных" пользователей, некопающихся с логах DL-manager'a, откуда качаеться файл, если он не находиться непосредственно у меня (dowload.php?file = file01.rar , но rar лежит например на макромедии).Такая фунция есть в phpNuke, но я самого начала начал пользоваться не тем модудем, а теперь уже поздно переходить обратно.

Сроки не беда, буду благодарен любой попытке помощи.
ako
Вобщем то вот скриптик.
Вызывается ссылкой вида "download.php?file=filename.ext", поддерживает докачку. Проверка - referer сверяется со строкой указанной в переменной "$referer", если быть точным, то с регекспом, посему там можно указать несколько строк через палку ("|") или придумать какое-нибуть сложное регулярное выражение...
Файлы отдаются только из директории указанной в переменной "$filepath" иначе можно на неприятности нарватся... доступ к этой директории думаю стоит наглухо закрыть через .htaccess чтобы нельзя было по прямым ссылкам качать, да и назвать ее стоит тоже как-нибуть мудрено.
При необходимости можно сделать несколько копий скриптика для разных директорий/разделов.

Работоспособность проверял закачкой регетом в пять потоков 400Mb RAR архива с
рядомстоящего сервера. Проверка после закачки сказала ОК, т.е. докачка
отрабатывает корректно.

Возможные проблемы: использованы переменные PHP "$GLOBALS[HTTP_REFERER]", "$HTTP_GET_VARS['file']" и "$HTTP_SERVER_VARS['HTTP_RANGE']". Есть некоторые сомнения в наличае этих переменных с этими же именами в разных версиях PHP... Возможно придется брать мануал к требуемой версии и править имена переменных.

Писалось все на коленке и нуждатеся в дополнительном тестировании (Возможно может быть неплохой дыркой в безопастности. Одну уже нашел и пофиксил..., так что как говорится "AS IS" т.е. ответственности за возможные неприятности не несу.
Используйте на свой страх и риск.


Любым отзывам и конструктивной критике буду только рад. :-)
b00ste®
Так получилось, что остался без сайта, но думаю за пару дней смогу уже потестить на новом хостинге, и новом портале......
Кстати, что именно прописываеться в .htaccess?
И как с анонимайзером, это можно написать "на коленке", или всетаки это уже серьезная работа? Пример того, что я понимаю под анонимайзером, высылаю в приват..
ako
b00ste®
Если во время тестирования выявятся какие-либо глюки - велкам в приват.

.htaccess для директории с файлами делается такого вида:
==============================
Order Deny, Allow
Deny from All
==============================
Что напрочь запрещает качать что-либо из этой директории.
В то же время скрипт к ней доступ имеет и может файлики через себя раздавать.

Насчет анонимайзера - не совсем понял идею. Но если это то что я думаю (т.е. качается с другого сайта и надо чтобы пользователь не знал откуда качается) то тут возникает ряд не разрешимых по моему мнению проблем.
Дело в том что раз ему надо качать из како-го то другого места то ему придется сказать об этом.
В PHP это можно сделать так:
<?
header("Location: http://some.site.com/some.file.rar");
?>
В браузере или в менеджере закачек он увидит ссылку вида
your.site.com/dl.php
но вот истинное положение файла ему всеравно передастся.
и в логе того же регета будут примерно такие строчки:
========================================
HEAD /redirect.php HTTP/1.0
Location: http://some.site.com/some.file.rar
Connection: close
Content-Type: text/html
Соединяемся с some.site.com (13.13.13.13:80)
HEAD /some.file.rar HTTP/1.0
Referer: http://some.site.com/
========================================
т.е. при желании узнать откуда на самом деле качается файл весьма просто.

Насчет ссылок вида http://your.site.com/dl.php?file=http://so...m/some.file.rar=>http://your.site.com/dl.php?file=http://some.site.com/some.file.rar - от такого достаточно легко избавится.
И свести эти ссылки к виду http://your.site.com/dl.php?file=4523
а на сайте держать какого либо рода базу с сопоставлением:
4523 --> http://some.site.com/some.file.rar

Реализовать все это не трудно. Но смысл в будет только в том что у тебя на сайте в открытом виде не будут валятся ссылки на то откуда в самом деле тянутся файлы.

Есть еще альтернативный способ. но он весьма извращенный.
И применять его стоит только если ты по каким то причинам не можеш хранить сами програмы на своем сайте и у тебя полностью не лимитированный трафик. Заключается он в том что скрипт будет работать как бы прокси сервером - скачивать файлик с исходного сайта и отдавать его клиенту. :-)


Если опять не то - описывай проблему подробнее. :-)
b00ste®
Траффик похоже будет не лимитируемым, но способ действительно извращенный smile.gif

Обьясню причину сразу.
Изучая, откуда ко мне приходят посетители, часто видел, что с WebAlizer'a. Зайдя на который, видел что за последние сутки на сайт такой-то компании, найбольшее число обращений на закачку, шли именно от меня, а в свою очередь, они заходили ко (разработчики) мне и видели свою прогу с "плюсом". Получал даже письма, толи с иронией, толи действительно не поняли в чем дело, похожего сожержания "...ваш сайт являеться лидирующим в помощи распостранения нашей продукции, зарегистрируйтесь по этому адрессу как дилер и вы будете получать столько-то процент от продаж. С уважением разрабочик Window Washer.."
К чему это может привести, наверно не надо говорить, так вот именно надо подставлять рефера или пользоваться таким редирект-сайтом (который увы использует часто попапы и бывает не доступен) какого пример послал вам в приват. Смысл его тот, что вставляя ссылку типа
http://www.anonimizer.com?http://rasrabotc...k.com/proga.exe=>http://www.anonimizer.com?http://rasrabotchik.com/proga.exe,
там не видят, откуда пришел запрос на файл (рефера не видят), с помощью высланого примера, мне удавалось втыкать линки на narod.ru, и он выдавал файл без предупреждения, так как думал, что идет это с его сайта запрос.
Вот и вопрос, а можно ли как-то вызываться файл через скрипт, чтоб небыло видно рефера у тех, на кого стоит линк, это иногда также помогает обойти защиту скачивания только с этого сайта(как на народе например)..... Дело только в том, что нужен универсальный скрипт, а не каждый раз вставлять рефера, то есть просто /download.php?http://macromedia/dream.exe, и в логе макромедии будет что пришли с самой macromedia.com.

<?
header("Location: http://some.site.com/some.file.rar");
?>

То есть на каждый файл надо писать отдельный файлик загрузки?

Цитата
И свести эти ссылки к виду http://your.site.com/dl.php?file=4523
а на сайте держать какого либо рода базу с сопоставлением:
4523 --> http://some.site.com/some.file.rar

А в каком виде эту базу держать (то есть как прописывать там 4321 = http://site.com/file.exe)? Или это уже надо делать через MySQL?

---
О том что полностью сделать чтоб не знал юзер, это известно что практически невозможно по этим протоколам, но я про то, что всеравно не видно в строке, и тем, кто тащит с сайта все подряд (к себе на сайты), всеравно будет лишней заботы копаться, смотреть и тд (ведь всегда можно найти цель полегче)
ako
b00ste®
Вобщем думаю.

Боюсь что получится что-то сильно браузерозависимое.
Тот урлик что ты кинул в ПМ - не переписывает поле реферер именем сайта на который идеш. Он в лучшем случае очищает его.
В худшем - там урлик этого сайта редиректора.
Завтра попробую слизать то что они сделали. Помоему там нет ничего сложного или экстраординарного. Но на мой взгляд это не шибко удобно.
Насчет реферера - он вообще не обязательное поле в http протоколе. И похоже браузерописатели извращаются с ним как могут. В ИЕ в частности оно подставляется по клику.
Проверял такую схемку:
сайт со ссылкой
редиректор1
редиректор2
редиректор3
целевой сайт.
Редиректоры в том виде который я приводил выше (через header).
В итоге на целевом сайте referer=сайт со ссылкой.
Ходя редиректоры находятся в совершенно разных доменах.

Цитата
То есть на каждый файл надо писать отдельный файлик загрузки?

Нет. База (например MySql) где описывается что есть что и данные он будет брать оттуда.

Цитата
О том что полностью сделать чтоб не знал юзер, это известно что практически невозможно по этим протоколам, но я про то, что всеравно не видно в строке, и тем, кто тащит с сайта все подряд (к себе на сайты), всеравно будет лишней заботы копаться, смотреть и тд (ведь всегда можно найти цель полегче)


Т.е. это тоже нужно, так же как и проверка что качать пытаются по ссылке с твоего сайта?
b00ste®
Уже тут начинаеться путаница....
Давайте разбираться по немногу.
Начнем думаю с этого: Как спрятать то, что клик был на моем сайте? (то есть рефера, когда линк ведет к разработчикам на ФТП).
Nuclear Death
Может, я помогу с постановкой ТЗ ?

Внизу есть рисунок, далее цифры 1, 2, 3 и 4 будут обозначать коннекты на этом рисунке.

1. Пользователь делает запрос на основную страницу сайта, ему она без проблем пересылается (1, 4).

2. Запрос на скачивание файла (1).

3. Движок в базе ищет реальный линк на файл, создаёт коннект на сайт-фирмы (2).

4. Происходит скачивание файла с сайта-фирмы на сайт движка (3), тут же без задержек передаётся пользователю (4).

Проблемы :

1. Пользователь не должен знать реальных линков на файлы - решена.

2. Сайт-фирмы не должен увидеть реальный Referer - ... ХЗ, я не web-programmer.

3. Сайт-фирмы не должен зарегистрировать БОЛЬШОЕ количество закачек с одного и того же IP - ... можно сделать так : либо при первой же закачке, либо после N закачек сохранять файл на HDD, и при последующих обращениях брать его сохранённую копию.

4. Трафик, много трафика - ... деньги, много денег smile.gif
ako
b00ste®
Выводы не утешительны.
Все что приходит в голову - несколько не удобно для клиента из-за того что referer ставится браузером при клике и возможно еще как нибуть если очень сильно извратиться.
Как вариант - промежуточный сайт со вполне приличным контентом (описания програм и линки на них) + скрипт редиректор. С головного сайта открывается окно на втором где и есть ссылочка на файл. referer будет указывать на этот самый скрипт. На дополнительном сайте так же предлогать качать проги через этот же скрипт.
Но урлы уже будут видны.
ako
Nuclear Death
Практически то же самое что я описывал как "очень извращенный способ" :-)

Цитата
2. Сайт-фирмы не должен увидеть реальный Referer - ... ХЗ, я не web-programmer.

Не увидит. Увидит абсолютно все что угодно т.е. то что пожелает хозяин скрипта.
Использовать referer для защиты - довольно бессмысленно ибо со стороны клиента оно подделывается очень легко.
Пример:
telnet www.yoursite.com 80
GET /index.html HTTP/1.0
Referer: http://www.some.site.com

:-)

Цитата
3. Сайт-фирмы не должен зарегистрировать БОЛЬШОЕ количество закачек с одного и того же IP - ... можно сделать так : либо при первой же закачке, либо после N закачек сохранять файл на HDD, и при последующих обращениях брать его сохранённую копию.


Можно. Но проще будет самому ложить файлы на сайт.
Имеет смысл только если лень качать самому, а потом лить на сайт и трафик на сайте слаболимитированый.

Цитата
4. Трафик, много трафика - ... деньги, много денег 

Угу... :-(
b00ste®
ako
Но этот-же safeurl работает, или по крайней мере работал неделю назад, так как удавалось давать ссылки на народ, и сливать без предупреждения.... Если у них получился скрипт, то может можно как-то и в "домашних" условиях такое придумать?

Я теперь посмотрел, они часто просто редирект делают, или нажать на закачку надо, а в то время когда я первый раз дал этот линк, то там было по другому, он урл шифровал, и автоматически редиректил
ako
b00ste®

Все что мне удалось с него получить - пустой реферер в лучшем случае. В худшем - реферер их сайт.

Что-то они там мудрят. Обычно на всякого рода закачки они выдают страничку со ссылкой "DOWNLOAD" указывающей на сайт.
Реферер в этом случае - эта самая страничка.
b00ste®
ako
Теперь увы да... Но вот тогда, когда я давал ссылку, там было по другому..
Просто выскакивал баннер, а закачка начиналась автоматом, а теперь они просто поставили ссылку.. А рефер "их сайт", это тоже не выход, так как некоторые дают качать, только когда рефер сайт, на том, на котором лежит файл (народ и аналоги), и вот с них удачно получалось скачать, а теперь этого "конька" сильно нехватает. Например, много игр лежит за греницей на таких серверах (biturbo например), и в каждой новости обьяснять на 2 языках, что надо или копировать, или Save As делать - не выход, все равно найдеться 1%, а это несколько десятков человек, которые будут писать гревные письма, что мол только выложиди а уже не работает и тд...
Как бы получить рефера тот сайт, на котором файл...
Раньше, когда писал safeurl?http://site.com/file.exe, ссылка шла потом в уже закодированном виде, куча бессмысленных на первый взгяд символов, а в итоге, как упоминал, скачивалось с народ'а без упоминания....
ako
b00ste®
Странно это.
Просто по стандарту неположено.

Да подделать реферер самому очень просто, но вот чтобы заствить удаленный браузер отдавать вместо реферера что-то произвольное... Незнаю.
b00ste®
Ладно. Похоже так ничего не получиться..
Давай может что придумаем, просто, чтоб ссылки писать "как обычно" (без разных ведения баз и прочего), но на "конечном пункте" был хотябы пустой рефер, или подставленный, но не мой..
Например, можно ли что-то сделать, что писать просто "/down.php?http://microsoft.com/win.exe", а сам скрипт уже (ну гарантированно желательно) прятал рефера?
ako
b00ste®
Вроде придумал... :-)
Все зависит от того как браузер клиента поддерживает META HTTP-EQUIV.

Наткнулся случайно. Никогда бы не подумал что такой маразм возможен... :-)
Но вроде оно таки отмирает.

Скриптик присоединен.
Использовать:
redirect.php?file=http://site.com/file.rar

Насчет работоспособности могу только предполагать.
Из явных недоделок - надо бы вставить какой-нибуть href на случай если у клиента Refresh не сработает.
Но с другой стороны он тогда тебя реферером засветит...

Вобщем проверяй. Интересно насколько оно работает.
mator
ako
что есть ?
Цитата
удаленный браузер


b00ste®

Код
<?php
   Header("Referer: http://www.site.com/download.php?name=this.zip");
?>


а в общем я торможу и не совсем понимаю о чем вы тут говорите smile.gif
ako
mator
Цитата
ako
  что есть ?
Цитата
удаленный браузер


Ну... Тот браузер что у клиента/посетителя сайта.
Експлорер/Нетскейп/т.п.
Цитата
Код
<?php
   Header("Referer: http://www.site.com/download.php?name=this.zip");
?>

а в общем я торможу и не совсем понимаю о чем вы тут говорите smile.gif

Как я понимаю о защите информации на сайте с лекарствами.
1. Защита ссылок от простого слямзевания.
2. Защита сайта от производетеля програм. Ибо по HTTP Referer хозяину сайта с которого качается софт передается адрес странички с которой пришли качать. А если качающих придет много то хозяин сайта с софтиной наверняка заинтересуется ссылкой. Последствия могут быть печальными.
b00ste®
ako
Сорри за отсутствие, интерес к данным вопросам не пропал, просто был очередной переезд со всеми вытекающими....
Теперь поставил скрипт,как бы не было парадоксально (ну имею ввиду простоту исполнения) но это похоже работает. Только пришлось вырезать проверку на рефера и оставить только ту часть, где html.
Проверил на "проблематичном" сайте, аналоге народа, который строго смотрит чтоб не было ссылок с других сайтов, и это работает..
Спасибо.
По поводу проблемы с проверки рефера где зарускаеться скрипт, я думаю тут дело в том, что одного никак не хватит, так как движок модульный (на основе phpNuke), то получаеться беда, так как он выдает не один и тотже рефер, а разные.. например: bsoft.ru/index.php, www.bsoft.ru/index.php, bsoft.ru/modules.php? и дальше в том-же духе...
Вопросик возник, а может можно сделать не строгую проверку, а лишб домена второго уровня? А то в противном случае придеться допускать десяток реферов и их прописывать...
ako
Цитата
Теперь поставил скрипт,как бы не было парадоксально (ну имею ввиду простоту исполнения) но это похоже работает. Только пришлось вырезать проверку на рефера и оставить только ту часть, где html.
Проверил на "проблематичном" сайте, аналоге народа, который строго смотрит чтоб не было ссылок с других сайтов, и это работает..

Ну чтож. Отлично. :-)
Если возникнут проблемы - пиши. Посмотрим что можно будет сделать.

Цитата
По поводу проблемы с проверки рефера где зарускаеться скрипт, я думаю тут дело в том, что одного никак не хватит, так как движок модульный (на основе phpNuke), то получаеться беда, так как он выдает не один и тотже рефер, а разные.. например: bsoft.ru/index.php, www.bsoft.ru/index.php, bsoft.ru/modules.php? и дальше в том-же духе...
Вопросик возник, а может можно сделать не строгую проверку, а лишб домена второго уровня? А то в противном случае придеться допускать десяток реферов и их прописывать...

Вообще то оно должно корректо работать с любой комбинацией рефереров. От your.site.here.com до .com и т.п. тоесть писать туда можно абсолютно что душе угодно хоть домен первого уровня... :-)
b00ste®
Странно, но так мне и не удалось заставить работать с проверкой рефера... Писал и свой домен, и поддомен что хост дал - пустая страница, не проходит проверки..
ako
Хм... Погоняю немного у себя. Может где очепятка вкралась... :-)
b00ste®
Теперьпроверил на народе, как не странно, он на нем не работает... Видно рефер не пустой всетаки, или пустой но не везде..
ako
Попробуй вот этот вариант.
Если что внутри коментарии. Поизменяй в соответствии с ними.
Как вариант на той версии PHP что у тебя на хостинге переменная $GLOBALS[HTTP_REFERER] может называтся несколько иначе...
b00ste®
ako
Пропал с концами...?
Интересно то, что то, что они на сервере что-то мутили, так что приходилось переделывать постоянно скрипты все, то пути менялись, то еще что..
Теперь вспомнив про второй вариант скрипта и так не дождавшись от тебя ответа по поводу подвисания, полез копаться, и удивительно то, что теперь все работает.. и проверка на ссылающуюся страницу...
Сенкс за помощь.
И еще, сорри за дилетантство, с php я недавно встретился, а что если саму переменную HTTP_REFERER поменять? Или это не переменная, а так сказать, константа?

Кстати, мы в жутком оффтопе, если прочитать название топика. И вот, ворзвращаясь в теме...
По поводу антилича, места под это все еще нет, но уже по немногу начинает просветляться, поэтому быть надо подготовленным.
Закачал я несколько таких вещичек, но .. Вот думаю, может мне какнить выслать их тебе (если есть еще желание что-то делать) а ты на их основе чтонить или выбрал-бы получше и довелбы до ума, или просто идею какую подсмотрел-бы ну и тд...
Lav
ako
Цитата
Есть еще альтернативный способ. но он весьма извращенный.
И применять его стоит только если ты по каким то причинам не можеш хранить сами програмы на своем сайте и у тебя полностью не лимитированный трафик. Заключается он в том что скрипт будет работать как бы прокси сервером - скачивать файлик с исходного сайта и отдавать его клиенту. :-)

Можешь сделать такой скрипт? Я, думаю, тоже смогу, но нет такого количества времени, т.к. занимаюсь вплотную тремя коммерческими проектами (изготавливаю Web-представительства). И всё оставшееся время трачу на написание движка к ЛавТеаМ...
Подмоги плиз с антиличем.
ako
Сразу хочу извенится за пропадание без предупреждения.
Ангина с ног свалила, а дома с интернетом некоторые проблемы.
Сейчас вроде все ОК и в ближайшее время никуда пропадать не собираюсь.

b00ste®
Цитата
Интересно то, что то, что они на сервере что-то мутили, так что приходилось переделывать постоянно скрипты все, то пути менялись, то еще что..
Теперь вспомнив про второй вариант скрипта и так не дождавшись от тебя ответа по поводу подвисания, полез копаться, и удивительно то, что теперь все работает.. и проверка на ссылающуюся страницу...
Сенкс за помощь.

Ну и то хорошо. :-)
До этого, как я уже писал, все выглядело очень странно. У меня было такое чувство что скрипт просто вылетал с серверной ошибкой. Из того что могли сделать - более культурно пересобрать апач с PHP.

Цитата
И еще, сорри за дилетантство, с php я недавно встретился, а что если саму переменную HTTP_REFERER поменять? Или это не переменная, а так сказать, константа?


Изменить наверное можно, но смысла в этом нет. Эта переменная имеет смысл только в PHP скрипте. Т.е. если ты ее и поменяеш то браузер этого никак не заметит.

Цитата
Кстати, мы в жутком оффтопе, если прочитать название топика. И вот, ворзвращаясь в теме...
По поводу антилича, места под это все еще нет, но уже по немногу начинает просветляться, поэтому быть надо подготовленным.
Закачал я несколько таких вещичек, но .. Вот думаю, может мне какнить выслать их тебе (если есть еще желание что-то делать) а ты на их основе чтонить или выбрал-бы получше и довелбы до ума, или просто идею какую подсмотрел-бы ну и тд...


Давай.
ako
Lav
Цитата
Можешь сделать такой скрипт? Я, думаю, тоже смогу, но нет такого количества времени, т.к. занимаюсь вплотную тремя коммерческими проектами (изготавливаю Web-представительства). И всё оставшееся время трачу на написание движка к ЛавТеаМ...
Подмоги плиз с антиличем.

ОК.
Правда сильно не уверен что оно будет работать с большим количеством файлов, но можно попробовать.
Сейчас в ПМ небольшой списочек вопросов по поводу кину.
b00ste®
ako, Выслал..
ako
b00ste®
А пароль? (на архивы)
Или я угадать должен?
b00ste®
А он запоролен?? Странно.. Вроде сам паковал, может WinRAR старый? А то имееться привычка паковать WinRAR 3.2- метод Solid
ako
Обзорчик того что ты кинул:

Anti-Leech Cable v2.0
Проверяется REFERER на наличае конкретной страницы или домена, в случае
совпадения делается редирект через "Location:". В случае не совпадения
отправляется на специальновыделенную страничку.
Урлы хранятся в базе в формате ID|URL, обращение к скрипту в виде al.pl?ID=ID


Anti-Leech vConfine
Проверяется REFERER на наличае подстроки, в случае совпадения делается редирект
через "Location:". В случае не совпадения отправляется на специальновыделенную
страничку.
Урлы хранятся в базе в формате ID|URL, обращение к скрипту в виде al.pl?ID
Добавление урлов производится через веб интерфейс.



Anti-Leech vHyperHack
Проверяется REFERER на наличае конкретной страницы или домена (в ридми
написанно только о домене, но и со страницей работать будет.), в случае
совпадения делается редирект через "Location:". В случае не совпадения
выдается сообщение об ошибке.
Урлы хранятся в базе (файл warez.dat в формате ID|URL, обращение к скрипту
в виде al.cig?file:beast01

В случае ошибки пишется лог в файл error.log


Anti-Leech vUnknown
Проверяется REFERER на наличае конкретной страницы или домена, в случае
совпадения делается редирект через "Location:". В случае не совпадения
отправляется на специальновыделенную страничку.

Имена файлов передаеются скрипту напрямую, все файлы должны лежать в
отдельной директории.

Ведется лог скаченых файлов. Точнее счетчик хитов.



(sercurety)leechthis103
Проверяется REFERER на наличае подстроки, в случае совпадения делается
редирект через "Location:". В случае не совпадения отправляется на
специальновыделенную страничку.

Имена файлов передаеются скрипту напрямую в виде file&ext,
все файлы должны лежать в отдельной директории.



downloadprotector

Проверяется REFERER на наличае подстроки, в случае совпадения делается
редирект через "Location:". В случае не совпадения отправляется на
специальновыделенную страничку.

Имена файлов передаеются скрипту напрямую в виде file&ext,
все файлы должны лежать в отдельной директории.

В принципе все одно и тоже с некоторыми вариациями, но на кое-какие мысли натолкнуло.
Вобщем вот что у меня получилось:

Проверяется REFERER на наличае подстроки.
В случае не совпадения делается редирект на специальную страничку.

Принимаются два типа идентификаторов:
1. Локальный файл (файл лежащий на этом же сайте) в базе хранится путь к файлу.
файл отдается самим скриптом (с поддержкой докачки) так что местоположение
файла на сайте остается неизвестным для пользователя.

2. URL пользователь перемещается либо через header "Location:", либо
через html страничку. в случае со страничкой пытаемся заменить поле
"Referer:" на необходимое нам или хотя бы обнулить.

Идентификаторы могут хранится либо в базе MySql либо в файле.
Ведется лог скачиваний, лог ошибок, и подсчет количества скачиваний для каждого файла.

Доступ к скрипу в виде dl.php?id=fileid

Веб интерфейс для управления.
1. Добавление и удаление файлов.
2. Просмотр логов.
3. Просмотр счетчиков.

Это так сказать ТЗ, думаю в течении недели сделаю сам скрипт, предложения и пожелания приветствуются...[b][i]
b00ste®
Даж и сказать незнаю что, это помоему работы много, а.. а толку тебе с этого...
ako
В принципе оно вроде как уже работает. Лежа... :-)

Осталось доделать веб интерфейс и сделать часть работающую с базами и обработку ошибок...

А насчет толка - опыт он лишним не бывает...
b00ste®
ako
Меня тут на досуге мысль посетила, ведь некоторые вещи уже можно использовать готовые, и на их основе приделать антилич.
Плюсом с этой стороны было-бы то, что не надо делать интерфейс (или практически ненадо), и пользоваться можно уже готовой системой запросов имени файла из MySQL. А модифицировать лишь часть проверяющую на реферов и прочих, ну может еще по мелочям..
Чтобы было понятно про что я говорю вот линк=>http://crack.bsoft.ru, на пустой правда модуль.. Еще неким плюсом являеться то, что существует пару блоков, показывающих последние, популярные и тд закачки..
Если захотите покопаться в данном модуле (в смысле достать права админа и посмотреть как работает, достать исходники и тд), то учитывая "скорость обмена инфы через форум", предпочтительней наверное будет ICQ, для некоторых вопросов....
Если что, моя: 99220022
ako
b00ste®
Там вообщето не так уж и много програминга. Проблемы возникли именно с написанием человеческого интерфейса ко всему этому делу и с наличаем свободного времени.

Последние пару недель я тут из себя белку в колесе изображал. :-)
А сейчас мне вообще приходится по делам временно уезжать из города недели на три.
Так что продолжить смогу только когда вернусь :-(
b00ste®
Чтод сказать.. Удачи в поездке, дело пока не к спеху, но просто былоб спокойнее когда все готово.
Так а как по поводу "внедрения" этой вещищки в модуль Downloads? Это я не о времени готовности, а вобще о готовности когда-либо.....при желании..
ako
b00ste®
Цитата
Чтод сказать.. Удачи в поездке, дело пока не к спеху, но просто былоб спокойнее когда все готово.

Отъезд отложился до пятницы. Так что попробую сделать альфу до этого времени... :-)
Учитывая что на работе я вроде как в отпуске и времени у меня должно поприбавится...

Цитата
Так а как по поводу "внедрения" этой вещищки в модуль Downloads? Это я не о времени готовности, а вобще о готовности когда-либо.....при желании..

Вполне интересно. Тем более что ты как я понимаю именно им собираешся пользоватся. Заодно освобождает меня от написания интерфесной части которую я так нелюблю... :-)

Сейчас попытаюсь их скрестить.
ako
Немного преписанный модуль "Downloads" для sPaiz-Nuke-v1.2.
По идее должен быть полностью совместим со стандартным модулем и не
требовать никаких изменений конфигурации или базы данных.

Фитчи.

* Проверяется поле реферер HTTP запроса и в случае несовпадения пользователь
перемещается на определенную страничку.
* Позволяет отдавать через интерфейс sPaiz-Nuke файлы лежащие на сервере в
выделенной директории (и только в ней).
* Пытается подменить реферер при использовании ссылки на другой сайт.
Реферер подменяется на параметр "homepage" указанный при добавлении файла.

Установка.
Скопировать файлы из архива в идректорию /html/modules/Downloads/ sPaiz-Nuke.

Настройка.
Вся настройка осуществляется в файле d_config.php

$referer_substring = "site.com|subdomain.site.com";
Указывает на наличае какой подстроки будет проверятся поле "Referer".
Синтаксис - Perl совместимое регулярное выражение.

$local_file_dir = "/home/httpd/html/"; //(not used if empty)
Каталог в котором будут размежены локальные файлы которые могут отдаватся через
модуль. Желательно указываеть полный путь.
Если не указано - возможность отдавать локальные файлы отключается.

$dl_error_log = "/home/httpd/html/asd"; //Downloads error log (not used if empty)
Файл в который будут заносится попытки скачивания с неправильным полем "Referer"

$bad_url = "http://ya.ru"; //If bad referer display this page (not used if empty)
Страничка которая будет показыватся в случае неправильного поля "Referer"

Использование.
Все как обычно со sPaiz-Nuke.
За добавлением фитч:
Если файл добавляется как localfile://somefile.ext - то он берется из
директории указанной в конфиге и отдается клиенту.
Если файл добавляется как refered://www.somesite.com/somefile.ext - то клиент
перенаправляеися на http://www.somesite.com/somefile.ext и одновременно
пытаемся заменить поле referer на то что было указано в поле homepage при
добавлении файла. Теоретически можно было добавить еще одно поле в БД и в
форму добавления файла, но так как оно сделано сейчас намного лучше в плане
совместимости.

Ну и разумеется автор не несет никакой ответственности от возможных последствий
использования сего скрипта. :-)

AKO 19.11.2003

Немного погонял - вроде все ОК.
Смотри и пиши что нетак.
Заархивировани TAR + GZIP, тот же винрар должен спокойно распаковать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.