Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » DEL

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Terabyte



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DEL




Исправил опечатку в названии. — Svarga.

Всего записей: 1325 | Зарегистр. 09-09-2002 | Отправлено: 18:32 01-04-2004 | Исправлено: Terabyte, 21:07 31-08-2017
Gimmi

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Terabyte

Цитата:
Вообщем задачи:  
1) Сделать так, чтобы с одного IP-адреса можно было скачивать прогу в одну сессию (а то некоторые по 5 сессий ставят...)  
2) Сделать антилич (мой метод не скрывает должным образом месторосположение файло)

первое вытекает их второго. Сначала сделай антилич этот, а потом будешь делать загрузку файлов.
По поводу загрузки файлов темы подобные есть. Использу фильтр: Скрытие адреса загрузки.
 

Всего записей: 361 | Зарегистр. 09-02-2004 | Отправлено: 20:11 01-04-2004
infernil

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Ставишь модуль для Apache который режет множественные подключения, найти его/их можно либо на http://modules.apache.org либо на http://www.opennet.ru.
 
Ну, а что касается антилича...делал я для bugz.ru, технология проста до жопы...единственное -- линуксовый сервак, ибо все постоено на симлинках.
 
1. Скрипт передает на сервер где лежат файлы какую-то информацию уникально идентифицирующую пользователя просматривающего страницу у тебя на сайте;
2. ссылки формируются в спец. форме, какой? Да какой придумаешь ;
3. При нажатии на ссылку обрабатывается скрипт который проверяет -- позволено ли юзеру скачивать, по тем данным, которые ранее передал скрипт, т.е. пришел ли он с твоего сайта или с другого;
4. для этого пользователя формируется уникальный симлинк, я делал md5 на чем-то, чем, уже не помню, ну а потом редирект по новой ссылке;
5. Контроль отключения пользователя после скачки...вот тут я тебе ничего не скажу ибо долго мучился, но сделал идеальную систему ) Так что это ноу-хау ) Думай сам.
6. на самом деле я описал самую верхушку, если вдуматься, тут много подводных камней -- например, кто помешает любому юзеру узнать как формируется запрос на создание сессии юзера и юзать в свое удовольствие твой антилич
 
И последнее, после того, как появился антилич -- ни одной левой ссылки на нас зарегистрировано не было А вот тянули с нас очень много Ну да ладно, все уже в прошлом ) Успехов.

Всего записей: 7 | Зарегистр. 27-03-2004 | Отправлено: 22:47 01-04-2004
Terabyte



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DEL

Всего записей: 1325 | Зарегистр. 09-09-2002 | Отправлено: 17:14 03-04-2004 | Исправлено: Terabyte, 21:08 31-08-2017
hamshen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Terabyte
А чем тебе не понравился тот, который ты нашел?
 
Добавлено
Я думаю что это -
Цитата:
header ("X-Script: WEB-HACK AntiLeeck");  
явно лишнее.


----------
Хорошие умирают молодыми, но плохие умирают уродливо.

Всего записей: 614 | Зарегистр. 22-04-2002 | Отправлено: 17:12 04-04-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Terabyte
если уж на то пошло... http://forum.ru-board.com/topic.cgi?forum=24&topic=2994#1

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 17:28 04-04-2004
Terabyte



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DEL

Всего записей: 1325 | Зарегистр. 09-09-2002 | Отправлено: 18:26 04-04-2004 | Исправлено: Terabyte, 21:08 31-08-2017
hamshen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Terabyte

Цитата:
тем что он  не работает.  

Скрипт в сутдию.
 
А это видел?

----------
Хорошие умирают молодыми, но плохие умирают уродливо.

Всего записей: 614 | Зарегистр. 22-04-2002 | Отправлено: 18:44 04-04-2004
infernil

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[create_user.php]
 
<?
  /*--------------------------------------------------------------------------*/
  $remote_user_timeout = 10*60;
  $server_ip           = "62.212.45.30";
  /*--------------------------------------------------------------------------*/
 
  function Clear_Dir()
  {
    global $timestamp, $remote_user_timeout;
    $dir_handle = opendir(_PATH_REMOTE_USERS);
    while (($file=readdir($dir_handle))!==false)
    {
       if (($file!="..") && ($file!="."))
       {
         $full_file_name=_PATH_REMOTE_USERS.$file;
         $file_stat=stat($full_file_name);
         $file_timestamp=$file_stat[9];
         if ($timestamp-$remote_user_timeout>=$file_timestamp) unlink($full_file_name);
       };
    };
    closedir($dir_handle);
  }
   
  define("_PATH",dirname(__FILE__));
  define("_PATH_REMOTE_USERS",_PATH."/data/remote_users/");
  define("_PATH_BLOCKS",_PATH."/data/blocks/");
   
  $uid=$HTTP_GET_VARS['uid'];
  $timestamp=time();
  $block_file_name=_PATH_BLOCKS."remote_users";
   
  if (!file_exists(_PATH_BLOCKS."remote_users"))
  {
    touch($block_file_name);
    Clear_Dir();
    unlink($block_file_name);
  };
   
  if ($uid && ($REMOTE_ADDR==$server_ip))
  {
    touch(_PATH_REMOTE_USERS.$uid);
  };
?>
 
[create_url.php]
 
<?
  /*--------------------------------------------------------------------------*/
  $global_timeout      = 60*60*5;
  $stat_timeout        = 60;
  $server_ip           = "62.212.45.30";
  $passwd              = "secret_word";
  $max_users           = 30;
  /*--------------------------------------------------------------------------*/
 
  function Empty_Dir($dir_name)
  {
    $dir_handle = opendir($dir_name);
    while (($file=readdir($dir_handle))!==false)
    {
       if (($file!="..") && ($file!="."))
       {
         unlink($dir_name."/".$file);
       };
    };
    closedir($dir_handle);        
  }
   
  function Logging($msg)
  {
    $log_handle=fopen("script.log",a);
    fwrite($log_handle,"[".date("H:i")."] ".$msg."\r\n");
    fclose($log_handle);
  }
   
  function Net_Stat()
  {
    global $passwd;                    
    ob_start();
    system("netstat -n");
    $stats=ob_get_contents();
    ob_end_clean();
     
    $dir_handle = opendir(_PATH_SESSIONS);
    while (($file=readdir($dir_handle))!==false)
    {
       if (($file!="..") && ($file!="."))
       {
         $full_file_name=_PATH_SESSIONS.$file;
         $hash=strtoupper(md5($file.$passwd));  
         $file_part=explode(".",$file);
         $ip_addr=$file_part[0].".".$file_part[1].".".$file_part[2].".".$file_part[3];
         if (!strstr($stats,$ip_addr))  
         {
           unlink($full_file_name);
           Empty_Dir(_PATH_USERS.$hash);
           rmdir(_PATH_USERS.$hash);
           if (!file_exists(_PATH_USERS.$hash))
           {
             Logging("[NETSTAT] delete ".$hash);
           } else
           {
             Logging("[NETSTAT] direcoty ".$hash." exist");
           };
         };
       };
    };
    closedir($dir_handle);        
   
  }
   
  function Update_Dir()
  {
    global $timestamp, $stat_timeout;
    $block_file=_PATH_BLOCKS."stat_block";
    if (!file_exists($block_file))  
    {
      touch($block_file);
      Net_Stat();
    };
    $stats=stat($block_file);
    if ($timestamp-$stats[9]>=$stat_timeout)
    {
      touch($block_file);
      Net_Stat();
    };
     
  }
   
  function Clear_Dir()
  {
    global $timestamp, $global_timeout, $passwd;
    $dir_handle = opendir(_PATH_SESSIONS);
    while (($file=readdir($dir_handle))!==false)
    {
       if (($file!="..") && ($file!="."))
       {
         $full_file_name=_PATH_SESSIONS.$file;
         $stat=explode(".",$file);
         $session_timestamp=$stat[6];
         $hash=strtoupper(md5($file.$passwd));    
         if ($timestamp-$session_timestamp>$global_timeout)
         {
           unlink($full_file_name);
           Empty_Dir(_PATH_USERS.$hash);
           rmdir(_PATH_USERS.$hash);
           if (!file_exists(_PATH_USERS.$hash))
           {
             Logging("[TIMEOUT] delete ".$hash);
           };
         };
       };
    };
    closedir($dir_handle);
  }
   
  function Get_Users_Count()
  {
    $dir_handle = opendir(_PATH_USERS);
    $count=0;
    while (($file=readdir($dir_handle))!==false)
    {
       if (($file!="..") && ($file!="."))
       {
         $count++;
       };
    };
    closedir($dir_handle);
    return($count);
  }
   
  define("_PATH",dirname(__FILE__));
  define("_PATH_REMOTE_USERS",_PATH."/data/remote_users/");
  define("_PATH_SESSIONS",_PATH."/data/sessions/");
  define("_PATH_BLOCKS",_PATH."/data/blocks/");
  define("_PATH_USERS",_PATH."/users/");
   
  $uid=$HTTP_GET_VARS['uid'];    
  $file=$HTTP_GET_VARS['file'];
  $timestamp=time();        
  $block_file_name=_PATH_BLOCKS."global_timeout";
   
  if (!file_exists($block_file_name))
  {
    touch($block_file_name);
    Clear_Dir();
    Update_Dir();
    unlink($block_file_name);
  };
   
  if (!$uid || !$file)
  {
    trigger_error ("Ошибка в переданных параметрах.", E_USER_ERROR);
  };
  if (!file_exists(_PATH_REMOTE_USERS.$uid))
  {
    trigger_error ("Авторизация не проведена из-за возникшего таймаута. Вернитесь на сайт и обновите страницу.", E_USER_ERROR);
  };
 
  if (Get_Users_Count()>=$max_users)
  {
    header("HTTP/1.0 503 Service Unavailable");
    trigger_error ("Извините, но достигнуто максимальное количество разрешенных пользователей. Сервер заполнен на 100%. Попытайтесь позже.", E_USER_ERROR);
  };
   
  $session_id=str_replace(" ",".",$REMOTE_ADDR.".".microtime());
 
  touch(_PATH_REMOTE_USERS.$uid);
  touch(_PATH_SESSIONS.$session_id);
 
  $hash=strtoupper(md5($session_id.$passwd));
  mkdir(_PATH_USERS.$hash);
  Logging("create ".$hash." for ".$REMOTE_ADDR);
   
  if (!strstr($file,"/pub/"))
  {
    trigger_error ("Обращение к запрещенной зоне.", E_USER_ERROR);
  };
  symlink("/var/ftp".$file,_PATH_USERS.$hash."/".basename($file));
  header("Location: http://filez.bugz.ru/antileech/users/".$hash."/".basename($file));
  //echo("<a href=http://filez.bugz.ru/antileech/users/".$hash."/".basename($file).">ссылка</a>");
?>
 
Разбирайся.

Всего записей: 7 | Зарегистр. 27-03-2004 | Отправлено: 13:06 06-04-2004
Terabyte



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DEL

Всего записей: 1325 | Зарегистр. 09-09-2002 | Отправлено: 18:21 15-04-2004 | Исправлено: Terabyte, 21:08 31-08-2017
hamshen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Terabyte
Это все можно сделать - было бы желание.

----------
Хорошие умирают молодыми, но плохие умирают уродливо.

Всего записей: 614 | Зарегистр. 22-04-2002 | Отправлено: 18:37 15-04-2004
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » DEL


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru