БЕРЕГИТЕ WAREZ! РАСПРЕДЕЛЕННАЯ СИСТЕМА СКАЧКИ cuttah & Donor Спецвыпуск Xakep, номер #028, стр. 028-068-2 Какие же скрипты нам понадобятся? admin.cgi Через этот перл-скрипт ты будешь обновлять свою базу. Добавлять в нее новые поступления софта, прописывать, на каких серверах хранятся эти самые заветные файлы. Что-то удалять, если возникнет такая необходимость. А также банить некоторых активных пользователей в случае их гипер-активной деятельности. list.cgi Выводит нашу DBM базу пользователю. То есть скрипт банально формирует динамическую html страницу со списком файлов, а также с ссылками для их скачки (ссылки, естественно, шифрованные, дабы упрятать их от посторонних глаз). download.cgi Основной скрипт, который и дает возможность пользователю скачивать файлы. При этом скрипт делает запрос на реальное местоположение файла и перенаправляет поток данных к пользователю. В итоге юзер также скачивает файл (единственный недостаток - отсутствие возможности докачки, но это преодолимо, просто надо считывать инфу из GET запроса), но он не имеет понятия, где же он расположен. Чтобы понять, как это работает на практике, приведу один пример. Допустим, пользователь хочет скачать новую версию Reget Deluxe. Он заходит на твой варезный сайт и кликает примерно на такую ссылку: http://www.soft.ru/cgi-bin/download.cgi?file=rgtdlx3. Что происходит? Запускается скрипт download.cgi. Он чекает параметр file со значением rgtdlx3, сверяет его со своей DBM базой. Если в хэше находится какое-то значение, а оно там должно находиться, то скрипт начинает его парсить (обрабатывать). Из подобной записи rgtdlx3.zip| Reget Deluxe 3 http://www.some.ru/rgtdlx3.zip скрипт вытаскивает первую строку. Делит ее на две части по символу |. Первая часть содержит в себе имя архива, вторая - описание, которое и выводится при помощи скрипта list.cgi. Далее первая строка удаляется, и в итоге остается информация, откуда этот файл можно скачать. Скрипт пускает генератор случайных чисел, получает номер от 1 до количества числа ссылок. В зависимости от получившегося номера, открывает соединение с соответствующим сервером. Дальше происходит стандартный GET запрос (ведь это http сервера), а ответ в виде потока данных посылается пользователю. Это и есть общий метод скрытия реального месторасположения файлов. Какой положительный момент в этом методе? Во-первых, если ты размещаешь свои файлы на халявных хостингах (а так, скорее всего, и будет), то очень вероятно, что у этих самых хостеров будет неприятное ограничение. Ты не имеешь права выкладывать файлы с расширением zip, rar, exe и какими-нибудь другими известными форматами. Тем самым они хотят тебя ограничить в возможностях выкладывать варез (вот свиньи! :)). Но теперь эта проблема решена. Ты можешь просто переименовать файл в любой другой, например, rgtdlx3.zip в rgtdlx3.aaa. Для пользователя же он будет выглядеть как обычный zip файл. |