ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Принцип работы антиличеров...
  #1  
Старый 03.08.2005, 15:03
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 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 потоков...), а так же при таком раскладе качки будут отдыхать. А так как директория меняется каждый раз после скачивания файла - отпадает вероятность подбора. Плюсов очень много. С одной стороны мы можем очень гибко опрашивать пользователя. Например просить у него пароль и так далее, но с другой стороны файл отдается напрямую. Т.е. если в первом случае будет сожрано куча ресурсов на открытие файла, то тут файл отдается как статика.

Вот =) Может кому и пригодится
 
Ответить с цитированием

  #2  
Старый 03.08.2005, 15:40
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Первый способ однозначно=) из предложенных =)

предположим, что много желающих, но разве нагрузка станет меньше, если вместо антиличера будет выдавать апач? нет, не станет =) она будет такой же Ну в крайнем случае не намного... (при условии, что антиличер не кривой).

Способ 5: Скрипт(а точнее программа на с/с++) написана под определенные нужды. Слушает порт и...
Имхо цель не оправдывет средства. Плохой способ.

Способ 6: мод_перл: в конфигах апача можно писать на перле: т.е. конфиг будет являться полноценной программой =) Имхо рулит.

Последний раз редактировалось nerezus; 03.08.2005 в 15:43..
 
Ответить с цитированием

  #3  
Старый 03.08.2005, 15:49
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

Способ 6 - не согласен. Точно так же мод_пхп. Насчет первого случая я уже говорил - весь файл (предполоим это 20 метров) открыавается скриптом и отдается в браузер. Напиши такой скрипт и открой пару десятков окон =) В моем случае файл отдается не апачем (хотя даже если отдавать его апачем - это намного экономичнее чем первый способ) а как статика минуая апач. Как заметил ecto (чей коммент я привел, автор slil.ru) уже давно бытует связка прокси nginx и апача. nginx отдает всю статику и запускает процесс апача только при обращении к скриптам. Мой способ и способ ecto достаточно схожи, только в моем случае все проще, но на самом деле его способ более економичен к ресурсам... вроде как.
 
Ответить с цитированием

  #4  
Старый 03.08.2005, 16:07
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Я бы делал самым экономичным способом =)
И самым геморным =\
Эх...

#include <iostream>
#include <mysql.h>
...
 
Ответить с цитированием

  #5  
Старый 03.08.2005, 16:13
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

=))) Все же самый экономичный способ - отдавать файлы статикой (если мы говорим о отдаче файлов через http). Я думал это очевидно =) Легче статики быть ничего не может. Тем более если мы учитываем что целый день пользователи только и будут делать что качать файлы =) в 10 потоков =))) Да так везде и сделано, http://www.ritlabs.com/download/the_...t_pro_3-51.msi вот пример. Просто задача антиличера - сделать возможным качать файл только из одного места (в данном случае сайт антилича). А насчет последнего способа твоего я так и не понял =) там где про iostream =)
 
Ответить с цитированием

  #6  
Старый 03.08.2005, 16:32
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
Все же самый экономичный способ - отдавать файлы статикой
Статика. Ну не может маленькая прога жрать больше ресурсов чем апач =)
(если руки не прямые)

Цитата:
А насчет последнего способа твоего я так и не понял =) там где про iostream =)
свой маленький сервер =)
это 5 способ =)
 
Ответить с цитированием

  #7  
Старый 03.08.2005, 16:45
Аватар для k00p3r
k00p3r
Banned
Регистрация: 31.05.2005
Сообщений: 549
Провел на форуме:
484586

Репутация: 16


Отправить сообщение для k00p3r с помощью ICQ
По умолчанию

Интересно....интересно....Над о поставить антилич
 
Ответить с цитированием

  #8  
Старый 03.08.2005, 16:56
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

nerezus, повторяю, в моем случае процесс апача не запускается, он не нужен =) Если ты говориш о написании своего сервера под это - это и есть способ ecto. Если я правильно все понял... Т.е. ты предлогаешь замену апачу - так и сделано. Висит nginx который почти нефига не жрет и н же отдает файлы вместо апача. Толко в моем способе сначало идет проверка - потом отдача, а в способе ecto немного подругому. Если у тебя получится написать свой мини сервак на эту тему - будет очень интересно =)
 
Ответить с цитированием

  #9  
Старый 03.08.2005, 17:02
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

минисервак... свой...

на с/с++ не хватит навыков пока...

на перле пойдет?
 
Ответить с цитированием

  #10  
Старый 03.08.2005, 17:05
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

Не, перл не считается =) Перл все же язык более высокого уровня чем c++, выгоды будет не много =) Хотя чисто для развития было бы интересно поглядеть как это выглядит на перле =) Если не в падляк =)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заключение эксперта .PurGeN. Чужие Статьи 2 02.08.2005 04:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ