Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Принцип работы антиличеров... |

03.08.2005, 15:03
|
|
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме: 941818
Репутация:
569
|
|
Принцип работы антиличеров...
Пишу сервис обмена файлов типа webfile.ru, нужно было написать грамотный антиличер. Стал смотреть что уже есть
(далее вырезка из моего дока на ННМ)
1. Первый - полностью скрывает местонахождения файла. Скрипт проверяет всякие данные (реферер там итп), потом генерит нужные заголовки и открывает файл в браузер, т.е. не редиректит на него, а прям открывает. Способ 100%, никаких проблем. Очень высокая гибкость, можно контролировать число потоков и много еще чего =) Минус в том, что... извените... открывать скриптом файл в 20 метров и отдавать его браузеру. Впринципе нет проблем, но если желающих много? =)))
2. Второй - тоже проверяет всякие данные, но потом просто редиректит пользователя на нужный файл. Т.е. пользователь узнает путь до файла, дает прямую линку и тьма народу его качает напрямую. это уже не антилич даже, но многие гордо пишут над такими скриптами, мол это все же антилич. Ну хз...
Передо мной стоит задача сделать гибкий "жезл", но в то же время чтобы и работало все быстро...
Возникло несколько идей, понимаю что америку я не открываю, но хотелось поделиться.
3. Сразу подумал о очень простом способе. Просто простом до оргазма! Все файлы хронятся в одной дире, имя которой меняется, скажем, раз в час. Скрипт узнать это имя может, юзер - нет. Т.е. полюбому нужно зайти на сайт антиличера, чтобы получить нужныю ссылку. И живой она будет только в течении максимум часа. Плюсов тут очень много. Например тот факт что файлы отдаются напрямую. При правиельной конфигурации сервака - вообще миную апач и прочее.
Немного подумая я понял что этот способ не годится - чел качал качал файл, а он бац, и переместился. Типа закачка остановится. Решил что он не пойдет, расстроился и начал думать дальше. Блин, надо было сразу проверить этот способ =)))
4. Это вообще способ для полный психопатов =))) но все же =)
Идея была такова.
При заходе на сайт личера создается файл в каталоге, ну пусть, ./ip/ с IP адресом зашедшего. Имя файла - md5 хеш IP адреса + какого-то текста, постоянного. И кидается ссылка на файл вида http://hty683hcn70cj3hfgl7js6b8g0m4j....ru/winrar.exe
далее в конфиг апача с mod_rewrite прописываем несколько правил. Сначало RewriteCond, которая определит строку поддомена, затем RewriteMap подключит нужный нам файл из дериктории ./ip/ и прочтет соответственно IP. Затем снова парочка RewriteCond, которые сверят IP и, доппустим, реферера и только потом RewriteRule которая редиректит пользователя на нужный файл =)))) Способ не столь гибкий как первый, но зато нагрузка, думаю, значительно ниже. Только тут для каждого IP своя ссылка получается, хотя это тоже настраивомо...
Так же из комментариев к этому посту:
"можно так-
ставятся два web сервера на машину - один за другим
nginx и apache
это сейчас уже становится классической связкой.
uginx - веб сервер заточенный под статику.
Работает схема так -
*лисенер nginx сидит на 80м порту
*получили запрос - передается апачу
*апач выполняет скрипт (php например)
*данные отдаются uginx - он отдает их пользователю.
так работают скрипты
статические файлы отдаются напрямую через nginx, что сильно снижает нагрузку с сервера.
теперь, как отдать файл с защитой от личерства в такой системе -
*nginx анастраивается, чтобы файлы из определенной директории отдавались через апач
*далее - в апач вносится директива чтобы файлы отдавались через скрипт
*в скрипте проверяем отдавать файл или страничку
теперь самое интересное! 
скрипт не сам отдает файл а дает директиву в nginx и он сам дальше уже отдает файл клиенту (внутренний редирект)
теперь к защите от личерства прибавляется:
*возможность докачки
*многопоточность
*нагрузка как при отдаче статического файла
именно такая система работает на slil.ru"
На данный момент реализовывать буду примерно так. Есть дира, допустим /download/ в ней еще одна с рандомным именем. Так же в /download/ есть файл, допустим updir.php, содержащий текст: "<?$updir='yu43i';?>". Когда чел просит файл на сервере, допустим заходит по адресу "www.antileech.ru/winrar.exe.html" он видит дискламер, бла бла бла и линку на скачку. Ну там пасс если надо и так далее. Линка ведет еще на один скрипт. Этот скрипт сверяет все данные, инклудит updir.php и редиректит пользователя на www.antilieech.ru/download/$updir/winrar.exe, после этого меняет имя директории и запись в updir.php. Таким образом качать файл можно только в один поток ((вы уж извените, но обслуживать одновременно 100 юзверей, качающих в 10 потоков...), а так же при таком раскладе качки будут отдыхать. А так как директория меняется каждый раз после скачивания файла - отпадает вероятность подбора. Плюсов очень много. С одной стороны мы можем очень гибко опрашивать пользователя. Например просить у него пароль и так далее, но с другой стороны файл отдается напрямую. Т.е. если в первом случае будет сожрано куча ресурсов на открытие файла, то тут файл отдается как статика.
Вот =) Может кому и пригодится
|
|
|
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Заключение эксперта
|
.PurGeN. |
Чужие Статьи |
2 |
02.08.2005 04:03 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|