[Soft] Kinokpk.com releaser 2.40 TBDEV

Статус
В этой теме нельзя размещать новые ответы.
V

vem882

Прохожие
Представляю вашему вниманию Kinokpk.com releaser 2.40
Что нового? (по сравнению с Для просмотра ссылки Войди или Зарегистрируйся)

1. Маленькая оптимизация (16 запросов вместо 18)
2. Создание и удаление форумных аккаунтов из админ панели, при создании или удалении аккаунтов на релизере
3. Исправлен баг с отображением тегов в некоторых таблицах
4. Исправлен баг с отображением дублей релизов для гостей в таблицах
5. Исправлен баг с отсылкой email при подписке на категории
6. Исправлено несколько дыр в безопасности, причем одна из них - SQL-инъекция
7. Вернулся защищенный usersearch.php
8. Админ-панель защищена HTTP-авторизацией. Не введя пароль вы не получите доступа к админ-функциям.
9. Введен кеш browse.php => проблема с долгим ожиданием списка торрентов на больших трекрерах исправлена.
10. Как следствие, упрощена таблица релизов - теперь ее нельзя сортировать как вам хочется (по колву сидеров и т.д.)
11. Пользователи теперь не могут выбирать, сколько релизов им отображать в таблице - это делается в конфигурационном скрипте.
12. Забаненые торренты отныне нельзя скачать средствами трекера.
13. Добавлена совместная авторизация на релизере и на форуме.
14. Добавлен мод скриншотов, теперь можно заливать хоть 100 скринштов к контенту, это параметр устанавливается в конфигурационном скрипте. Также заливка доступна через URL, даже на странице редактрования релизов.
15. Мультитрекерность, вы можете раздавать торренты других трекеров.
16. Весь tbdev ajax переведен на jquery.
17. Многочисленные AJAX функции - перемещение блоков, сворачивание блоков (с запоминанием), листание релизов, спасибы.
18. Множество мелких поправок, которые я не запомнил.

Маленькое демо: Для просмотра ссылки Войди или Зарегистрируйся

Демо-трекер: Для просмотра ссылки Войди или Зарегистрируйся

Системные требования:

1. MySQL 5.0.7+
2. PHP 5+
iconv
gd2 (libjpeg,libpng)
zlib
3. PHP как модуль Apache (в противном случае (имеется ввиду cgi) надо прописать rewrite ( => нужен mod_rewrite для Apache) для HTTP авторизации)



Скачать:

Для просмотра ссылки Войди или Зарегистрируйся

Добавлено через 46 секунд
Если вы используете форум IPB 2.3.5+:

Цитата:
- установите форум, либо можно подключить релизер к уже установленному форуму
- установите этот мод "спасибо" на форум
- после установки релизера вам надо будет войти с логином и паролем форума, а не зарегестрировать аккаунт администратора
- остальным пользователям надо будет входить на релизер для переноса их аккаунтов


1. Залить все файлы из папки upload на ftp
2. Если вы используете форум - то залить файлы из папки to_forum_root в корневую папку форума
3. Поставить CHMOD 777 на следующие папки:
Цитата:
avatars, cache, torrents, torrents/images

4. Поставить CHMOD 666 на следующие файлы:
Цитата:
include/secrets.php, Sitemap.xml

5. Зайдите на сайт/install.php и следуйте инструкциям инсталлятора.
 
дополнение моему торому аккаунту

Обновление 2.15 -->> 2.40

0. СДЕЛАЙТЕ BACKUP!

1. Удалите все файлы с ftp, за исключением:
Цитата:
папки torrents
папки avatars
папки cache
файла include/secrets.php
файла Sitemap.xml

2. Загрузите все файлы из папки upload.php на ftp, за исключением:
Цитата:
database.sql install.php Sitemap.xml include/secrets.php

3. Загрузите на ftp все файлы из папки update_215_240
4. Если вы используете форум, то загрузите все файлы из папки to_forum_root в корневую папку форума
5. Зайдите на сайт/update.php и следуйте инструкциям инсталлятора.

Добавлено через 34 секунды
Преход с TBDEV YSE 6 (TBDev v2.0 (18.05.07) Pre 6 RC 0 (update 19.02.09))

Внимание!
Цитата:
1. С предыдущими опросами придется распрощаться.
2. Позиции и места блоков придется настраивать заново.
3. Все ваши старые релизы переместятся в категорию "прочее", хотя никто не мешает вам переименовать ее в "Старые релизы", или как нибудь еще.
4. С банами придется распрощаться.


Итак, начнем:

1. Удалите все файлы с фтп, за исключением и файлов
Цитата:
torrents
torrents/images
include/secrets.php


2. Загрузите на фтп файлы из папки upload, за исключением
Код:
database.sql
install.php
include/secrets.php


3. Поставьте chmod 777 следующим папкам:
Код:
avatars, cache, torrents, torrents/images


4. Поставьте chmod 666 следующим файлам:
Код:
Sitemap.xml


5. Загрузите в корень релизера файлы из папки transfer_from_YSE6
6. Выполните скрипт сайт/transfer.php и следуйте инструкциям инсталлятора.
7. Замените ваш файл include/secrets.php по шаблону:
Код:
PHP:
<?

/*
Project: Kinokpk.com releaser
This file is part of Kinokpk.com releaser.
Kinokpk.com releaser is based on TBDev,
originally by RedBeard of TorrentBits, extensively modified by
Gartenzwerg and Yuna Scatari.
Kinokpk.com releaser is free software;
you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Kinokpk.com is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Kinokpk.com releaser; if not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA  02111-1307  USA
Do not remove above lines!
*/

if(!defined('IN_TRACKER') && !defined('IN_ANNOUNCE')) die("Direct access to this page not allowed");

$mysql_host = "хост базы трекера";
$mysql_user = "пользователь базы трекера";
$mysql_pass = "пароль для базы трекера";
$mysql_db = "база трекера";
$mysql_charset = "CP1251 (или другой набор символов, в зависимости от вашей конфигурации обычно CP1251)";

$fmysql_host = "хост базы форума";
$fmysql_user = "пользователь базы форума";
$fmysql_pass = "пароль базы форума";
$fmysql_db = "база форума";
$fmysql_charset = "CP1251 (или другой набор символов, в зависимости от вашей конфигурации обычно CP1251)";
$fprefix = "префикс таблиц форума, обычно ibf_";
?>
Добавлено через 1 минуту
vipzal это и есть vem882 тока его заблокировали :(

Добавлено через 5 минут
PHP:
Kinokpk.com releaser 2.05 и раньше:
recover.php
найти:
Код:
[PHP]elseif($_GET)

заменить на:
Код:
PHP:
elseif($_SERVER['REQUEST_METHOD'] == "GET")
найти:
Код:
PHP:
   $id = 0 + $_GET["id"];

добавить выше:
Код:
PHP:
         if (!is_valid_id($_GET["id"]))
         stderr($tracker_lang['error'], $tracker_lang['invalid_id']);

email-getway.php - удалить, либо поправить:
найти:
Код:
PHP:
$id = 0 + $_GET["id"];
if (!$id)
   stderr($tracker_lang['error'], $tracker_lang['invalid_id']);

заменить на:
Код:
PHP:
         if (!is_valid_id($_GET["id"]))
         stderr($tracker_lang['error'], $tracker_lang['invalid_id']);
         
   $id = 0 + $_GET["id"];
takeconfirm.php найти:
Код:
PHP:
$id = 0 + $_GET["id"];
if (!is_valid_id($id))
   stderr("Ошибка", "А вот этого лучше не делать...");

заменить на:
takeinvite.php
найти:
Код:
PHP:
$id = 0 + $_GET["id"];

заменить на:
Код:
PHP:
         if (!is_numeric($_GET["id"]) || !isset($_GET["id"]))
         stderr($tracker_lang['error'], $tracker_lang['invalid_id']);

   $id = 0 + $_GET["id"];
topten.php
найти:
Код:
PHP:
   $type = isset($_GET["type"]) ? 0 + $_GET["type"] : 0;
   if (!in_array($type,array(1,2,3,4)))
      $type = 1;
   $limit = isset($_GET["lim"]) ? 0 + $_GET["lim"] : false;
   $subtype = isset($_GET["subtype"]) ? $_GET["subtype"] : false;
заменить на:
Код:
PHP:
   $type = (isset($_GET["type"]) && is_numeric($_GET["type"]))  ? 0 + $_GET["type"] : 0;
   if (!in_array($type,array(1,2,3,4)))
      $type = 1;
   $limit = (isset($_GET["lim"]) && is_numeric($_GET["lim"])) ? 0 + $_GET["lim"] : false;
   $subtype = isset($_GET["subtype"]) ? $_GET["subtype"] : false;
Архив обновлен!


Обновление безопасности, заменить avatarup.php
Код:
PHP:
<?
/*
Project: Kinokpk.com releaser
This file is part of Kinokpk.com releaser.
Kinokpk.com releaser is based on TBDev,
originally by RedBeard of TorrentBits, extensively modified by
Gartenzwerg and Yuna Scatari.
Kinokpk.com releaser is free software;
you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Kinokpk.com is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Kinokpk.com releaser; if not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA  02111-1307  USA
Do not remove above lines!
*/

require "include/bittorrent.php";
dbconn();
loggedinorreturn();
    $max_image_width = $avatar_max_width;
    $max_image_height = $avatar_max_height;
    $maxfilesize = 60 * 1024;

$allowed_types = array(
"image/gif" => "gif",
"image/jpeg" => "jpg",
"image/jpg" => "jpg",
"image/png" => "png"
// Add more types here if you like
);
   
if(empty($_FILES['avatar']['tmp_name'])) {
stdhead("Загрузка аватара");
print '<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td class="block" width="100%" align="center" valign="middle" ><strong>Загрузка аватара</strong></td></tr></table>';
print "<br><form method=post enctype=multipart/form-data><div class=\"form-row\"><div class=\"field-widget\"><label for=\"avatar\">Выберите аватару</label> : <input type=file name=avatar title=\"Выберите аватарку\"></div></div>
<input type=submit value=Загрузить ></form><br><br><center><font color=green>Подсказка: Аватара должна быть размером не больше ".round($maxfilesize/1024,2)." килобайт<br>и pазмером не больше ".$max_image_width."х".$max_image_height." пикселей</font></center> ";
stdfoot();
}
else {
    $size = @GetImageSize($_FILES['avatar']['tmp_name']);
//    var_dump($size);
if (!$size)
stderr($tracker_lang["error"],"Это не картинка, доступ запрещен");
    // Is valid filetype?
elseif (!array_key_exists($_FILES['avatar']['type'], $allowed_types))
        stderr($tracker_lang["error"],"Внимание! Разрешенные форматы картинок: JPG,PNG,GIF.");

elseif (!preg_match('/^(.+)\.(jpg|png|gif)$/si', $_FILES['avatar']['name']))
        stderr($tracker_lang["error"],"Неверное имя файла (не картинка или неверный формат).");

elseif (($size[0] > $max_image_width ) || ($size[1] > $max_image_height))
stderr ($tracker_lang["error"],"<br>Размер вашего аватара ".$size[0]."х".$size[1]." Требуется размер не более ".$max_image_width."х".$max_image_height."  пикселей</font></b>");
elseif ($_FILES['avatar']['size'] > $maxfilesize) {
stderr($tracker_lang["error"],"<br>Размер вашей аватары превышает ".round($maxfilesize/1024,2)." килобайт!</font></b>");
}else
{
@unlink("./".$CURUSER['avatar']);
copy($_FILES['avatar']['tmp_name'],"./avatars/".$CURUSER["id"].substr($_FILES['avatar']['name'], strripos($_FILES['avatar']['name'], '.')));
$pathav = "avatars/".$CURUSER["id"].substr($_FILES['avatar']['name'], strripos($_FILES['avatar']['name'], '.'));
sql_query("UPDATE users SET avatar = '".$pathav."' WHERE id = " . $CURUSER["id"])or sqlerr(__FILE__,__LINE__);
/*sql_query("UPDATE ipb_member_extra SET avatar_type = 'url' WHERE id = " . $CURUSER["id"])or sqlerr(__FILE__,__LINE__);
sql_query("UPDATE ipb_member_extra SET avatar_size = '".$size[0]."x".$size[1]."' WHERE id = " . $CURUSER["id"])or sqlerr(__FILE__,__LINE__);
sql_query("UPDATE ipb_member_extra SET avatar_location = '".$pathav."' WHERE id = " . $CURUSER["id"])or sqlerr(__FILE__,__LINE__);
*/
stdmsg("Okay!","<b>Ваша аватара была успешно загружёна на сервер!</b><hr>Название файла: <b>".$CURUSER["id"].substr($_FILES['avatar']['name'], strripos($_FILES['avatar']['name'], '.'))."</b><br>Размер файла: <b>".round($_FILES['avatar']['size']/1024,2)." кб.</b><hr><center>Аватар автоматически добавлен в профиль пользователя</b></center>");// как на релизере, так и на <a href=\"".$DEFAULTBASEURL."/forums/\">Форуме</a></b></center> ";

}
}
?>

takeedit.php функцию uploadimage заменить на:

Код:
PHP:
function uploadimage($x, $imgname, $tid) {

   $maxfilesize = 512000; // 500kb

   $allowed_types = array(
"image/gif" => "gif",
"image/pjpeg" => "jpg",
"image/jpeg" => "jpg",
"image/jpg" => "jpg",
"image/png" => "png"
   // Add more types here if you like
   );

   if (!($_FILES[image.$x]['name'] == "")) {

      if ($imgname != "") {
         // Make sure is same as in takeedit.php (except for the $imgname bit)
         $img = "torrents/images/$imgname";
         $del = @unlink($img);
      }

      $y = $x + 1;

      // Is valid filetype?
      if (!array_key_exists($_FILES[image.$x]['type'], $allowed_types))
         bark("Invalid file type! Image $y");

      if (!preg_match('/^(.+)\.(jpg|png|gif)$/si', $_FILES[image.$x]['name']))
        bark("Неверное имя файла (не картинка или неверный формат).");

      // Is within allowed filesize?
      if ($_FILES[image.$x]['size'] > $maxfilesize)
         bark("Invalid file size! Image $y - Must be less than 500kb");

      // Where to upload?
      // Make sure is same as on takeupload.php
      $uploaddir = "torrents/images/";

      // What is the temporary file name?
      $ifile = $_FILES[image.$x]['tmp_name'];

        $size = @GetImageSize($ifile);
          //    var_dump($size);
    if (!$size)
    bark("Это не картинка, доступ запрещен");
   
      // By what filename should the tracker associate the image with?
      $ifilename = $tid . $x . substr($_FILES[image.$x]['name'], strlen($_FILES[image.$x]['name'])-4, 4);
         
      // Upload the file
      $copy = copy($ifile, $uploaddir.$ifilename);

      if (!$copy)
         bark("Error occured uploading image! - Image $y");

         //adds watermark ////////////////////////////////////////////////////
/// ORIGINAL POSTED http://www.codenet.ru/webmast/php/Image-Resize-GD/ /////////////////

$ifn=$uploaddir.$ifilename;


// качество jpeg по умолчанию
if (!isset($q)) $q = 75;

// создаём исходное изображение на основе
// исходного файла и опеределяем его размеры
if (($_FILES[image.$x]['type'] == "image/pjpeg") || ($_FILES[image.$x]['type'] == "image/jpeg") || ($_FILES[image.$x]['type'] == "image/jpg"))
$src = @imagecreatefromjpeg($ifn);
elseif ($_FILES[image.$x]['type'] == "image/gif")
$src = @imagecreatefromgif($ifn);
elseif ($_FILES[image.$x]['type'] == "image/png")
$src = @imagecreatefrompng($ifn);

$w_dest = $size[0];
$h_dest = $size[1];

       // создаём пустую картинку
       // важно именно truecolor!, иначе будем иметь 8-битный результат
       $dest = imagecreatetruecolor($w_dest,$h_dest);
       imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_dest, $h_dest);

// определяем координаты вывода текста
        $str = "Kinokpk.com & pdaPRIME.ru";
        $size = 2; // размер шрифта
        $x_text = $w_dest-imagefontwidth($size)*strlen($str)-3;
        $y_text = $h_dest-imagefontheight($size)-3;

        // определяем каким цветом на каком фоне выводить текст
        $white = imagecolorallocate($dest, 255, 255, 255);
        $black = imagecolorallocate($dest, 0, 0, 0);
        $gray = imagecolorallocate($dest, 127, 127, 127);
        if (imagecolorat($dest,$x_text,$y_text)>$gray) $color = $black;
        if (imagecolorat($dest,$x_text,$y_text)<$gray) $color = $white;

        // выводим текст
        imagestring($dest, $size, $x_text-1, $y_text-1, $str,$white-$color);
        imagestring($dest, $size, $x_text+1, $y_text+1, $str,$white-$color);
        imagestring($dest, $size, $x_text+1, $y_text-1, $str,$white-$color);
        imagestring($dest, $size, $x_text-1, $y_text+1, $str,$white-$color);

        imagestring($dest, $size, $x_text-1, $y_text,   $str,$white-$color);
        imagestring($dest, $size, $x_text+1, $y_text,   $str,$white-$color);
        imagestring($dest, $size, $x_text,   $y_text-1, $str,$white-$color);
        imagestring($dest, $size, $x_text,   $y_text+1, $str,$white-$color);

        imagestring($dest, $size, $x_text,   $y_text,   $str,$color);

        if (($_FILES[image.$x]['type'] == "image/pjpeg") || ($_FILES[image.$x]['type'] == "image/jpeg") || ($_FILES[image.$x]['type'] == "image/jpg"))
        imagejpeg($dest,$ifn,$q);
elseif ($_FILES[image.$x]['type'] == "image/gif")
        imagegif($dest,$ifn,$q);
elseif ($_FILES[image.$x]['type'] == "image/png")
        imagepng($dest,$ifn,$q);

        imagedestroy($dest);
        imagedestroy($src);

////////////////RESIZING END //////////////////////////////////////

      return $ifilename;

   }

}
takeupload.php найти:
Код:
PHP:
//////////////Take Image Uploads//////////////
найти:
Код:
PHP:
ksort($_POST['tags']);

все, что между заменить на:
Код:
if ($use_integration) {
//IPB TOPIC TRANSFER
$relimage=0;
//END, CONTINUE BELOW
}

$maxfilesize = 512000; // 500kb

$allowed_types = array(
"image/gif" => "gif",
"image/jpeg" => "jpg",
"image/jpg" => "jpg",
"image/png" => "png"
// Add more types here if you like
);
// Where to upload?
// Update for your own server. Make sure the folder has chmod write permissions. Remember this director
$uploaddir = "torrents/images/";

for ($x=0; $x < 2; $x++) {
$y = $x + 1;
if (($_FILES[image.$x]['name'] != "") || !empty($_POST['img'.$x])) {

if (!($_FILES[image.$x]['name'] == "") && empty($_POST['img'.$x])) {


// Is valid filetype?
if (!array_key_exists($_FILES[image.$x]['type'], $allowed_types))
bark("Внимание! Разрешенные форматы картинок: JPG,PNG,GIF. Ошибка при загрузке картинки $y");

if (!preg_match('/^(.+)\.(jpg|png|gif)$/si', $_FILES[image.$x]['name']))
bark("Неверное имя файла (не картинка или неверный формат).");

// Is within allowed filesize?
if ($_FILES[image.$x]['size'] > $maxfilesize)
bark("Внимание! Картинка $y - Слишком большая. Макс. размер: 500kb");

// What is the temporary file name?
$ifile = $_FILES[image.$x]['tmp_name'];

$size = @GetImageSize($ifile);
// var_dump($size);
if (!$size)
bark("Это не картинка, доступ запрещен");
// Calculate what the next torrent id will be
// GO UPSTAIRS //

// By what filename should the tracker associate the image with?
$ifilename = $next_id . $x . substr($_FILES[image.$x]['name'], strlen($_FILES[image.$x]['name'])-4, 4);

//File extention
$ext = substr($_FILES[image.$x]['name'], strlen($_FILES[image.$x]['name'])-3, 3);

// Upload the file
$copy = copy($ifile, $uploaddir.$ifilename);

if (!$copy)
bark("Ошибка при загрузке картинки $y");

//adds watermark///
/// ORIGINAL POSTED Для просмотра ссылки Войди или Зарегистрируйся /////////////////

$ifn=$uploaddir.$ifilename;
$pictdest = $ifn;

} elseif (($_FILES[image.$x]['name'] == "") && !empty($_POST['img'.$x])) {

if (filesize($_POST['img'.$x] > $maxfilesize)) bark("Внимание! Картинка $y - Слишком большая. Макс. размер: 500kb");
$ifn = $_POST['img'.$x];
$size = @GetImageSize($ifn);
$ifilename = $next_id . $x . substr($_POST['img'.$x], strlen($_POST['img'.$x])-4, 4);
$ext = substr($_POST['img'.$x], strlen($_POST['img'.$x])-3, 3);
$pictdest = $uploaddir.$ifilename;
}


// качество jpeg по умолчанию
if (!isset($q)) $q = 75;

// создаём исходное изображение на основе
// исходного файла и опеределяем его размеры
if ($ext == "jpg")
$src = @imagecreatefromjpeg($ifn);
elseif ($ext == "gif")
$src = @imagecreatefromgif($ifn);
elseif ($ext == "png")
$src = @imagecreatefrompng($ifn);

// var_dump($size);
if (!$src || !$size) bark("Ошибка обработки картинки $y, она недоступна, либо имеет недопустимый формат");
$w_dest = $size[0];
$h_dest = $size[1];

// создаём пустую картинку
// важно именно truecolor!, иначе будем иметь 8-битный результат
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_dest, $h_dest);
$str = "Kinokpk.com & pdaPRIME.ru";
// определяем координаты вывода текста
$size = 2; // размер шрифта
$x_text = $w_dest-imagefontwidth($size)*strlen($str)-3;
$y_text = $h_dest-imagefontheight($size)-3;

// определяем каким цветом на каком фоне выводить текст
$white = imagecolorallocate($dest, 255, 255, 255);
$black = imagecolorallocate($dest, 0, 0, 0);
$gray = imagecolorallocate($dest, 127, 127, 127);
if (imagecolorat($dest,$x_text,$y_text)>$gray) $color = $black;
if (imagecolorat($dest,$x_text,$y_text)<$gray) $color = $white;

// выводим текст
imagestring($dest, $size, $x_text-1, $y_text-1, $str,$white-$color);
imagestring($dest, $size, $x_text+1, $y_text+1, $str,$white-$color);
imagestring($dest, $size, $x_text+1, $y_text-1, $str,$white-$color);
imagestring($dest, $size, $x_text-1, $y_text+1, $str,$white-$color);

imagestring($dest, $size, $x_text-1, $y_text, $str,$white-$color);
imagestring($dest, $size, $x_text+1, $y_text, $str,$white-$color);
imagestring($dest, $size, $x_text, $y_text-1, $str,$white-$color);
imagestring($dest, $size, $x_text, $y_text+1, $str,$white-$color);

imagestring($dest, $size, $x_text, $y_text, $str,$color);

if ($ext == "jpg")
imagejpeg($dest,$pictdest,$q);
elseif ($ext == "gif")
imagegif($dest,$pictdest,$q);
elseif ($ext == "png")
imagepng($dest,$pictdest,$q);

imagedestroy($dest);
imagedestroy($src);

////////////////RESIZING END //////////////////////////////////////


$inames[] = $ifilename;
if ($use_integration) {
//IPB TOPIC TRENSFER
$relimage=1;
// END, CONTINUE BELOW
}
}
}[/PHP]

Добавлено через 12 минут
viewrequests.php
найти:
Код:
PHP:
$search = $_GET["search"];
заменить на:
Код:
PHP:
$search = (string) $_GET["search"];

Цитата:
Раскрытие пути

аменить файл из аттача
Цитата:
Множественные XSS

Для просмотра ссылки Войди или Зарегистрируйся



simpaty.php
найти:
Код:
PHP:
$type = $_GET['type'];

заменить на:
Код:
PHP:
        $type = htmlentities($_GET['type']);


Добавлено через 14 минут
delete.php
найти:
Код:
PHP:
$rt = 0 + $_POST["reasontype"];

if (!is_int($rt) || $rt < 1 || $rt > 5)

заменить на:
Код:
PHP:
$rt = (int) $_POST["reasontype"];

if ( $rt < 1 || $rt > 5)


удалить:
Код:
PHP:
$r = $_POST["r"];





Важное обновление безопасности:
users.php
найти:
Код:
PHP:
$search = trim($_GET['search']);

заменить на:
Код:
PHP:
$search = htmlentities(trim($_GET['search']));

заменить файлы из аттача с сохранением структуры папок

Цитата:
XSS + возможность имея права модератора поставить себе любой класс + раскрытие путей подделкой post-запроса

Добавлено через 14 минут
Для просмотра ссылки Войди или Зарегистрируйся

Добавлено через 15 минут
Очередной фикс дырок в системе запросов
заменить файлы из архива.

Цитата:
Ошибка в составлении sql запроса, раскрытие путей

Для просмотра ссылки Войди или Зарегистрируйся

Добавлено через 16 минут
include/functions.php
добавить:
Код:
PHP:
// retrieve images on the site
function check_images($file){
    $h1count = preg_match_all('/(<img.*?)\s (src="([a-zA-Z0-9\.;:\/\?&=_|\r|\n]{1,})")/isxmU',$file,$patterns);
    $imagesarray = array();
    array_push($imagesarray,$patterns[3]);
    array_push($imagesarray,$patterns[0]);
   
  $images = $imagesarray[0];
  $imagecodes = $imagesarray[1];
  if ($images)
    foreach ($images as $key => $image) {
      if (!@getimagesize($image)) {$bb[] = $imagecodes[$key]; $html[] = $image; }
    }
if ($bb)
$code = str_replace($bb,$html,$code);
return $file;
}
Код:
найти:
PHP:
   foreach ($privatesmilies as $code => $url)
      $s = str_replace($code, "<img border=\"0\" src=\"pic/smilies/$url\">", $s);

   return $s;
заменить на:
Код:
PHP:
   foreach ($privatesmilies as $code => $url)
      $s = str_replace($code, "<img border=\"0\" src=\"pic/smilies/$url\">", $s);

   return check_images($s);
Цитата:
GIF-картинки с авторизацией, да и вообще любые несанкционированные вложения в тег <img>

Добавлено через 18 минут
офф саит: Для просмотра ссылки Войди или Зарегистрируйся
 
Честно говоря очень замудрёная система шаблонов раздачь.... может есть у кого мод попроше как на ТБДЕВ шаблоны раздачь или как на скай трекере?
 
Отличный скрипт. Большой функционал! Мне это в нем понравилось больше всего. Насчёт замудренностей не спорю, есть немного, но привыкаешь.
 
Еше плохо что для каждой категории создаються отдельные теги... разве не льзя сделать одно большое облоко тегов чтоб меньше обращений к бд было
 
Kinokpk.com_releaser_v.2.70 (Альфа-версия)

Альфа-версия доступна для скачивания: Для просмотра ссылки Войди или Зарегистрируйся

ВНИМАНИЕ! Это тестовый релиз, он не поддерживается (а также невозможно обновится до него с 2.40, нельзя "поставить его сверху"), не является стабильным, и все вопросы, не связанные с тестированием игнорируются.
обсуждение багов в Для просмотра ссылки Войди или Зарегистрируйся
==============================анонс==============
Итак, товарищи, пришло время анонсировать версию скорее всего с индексом 2.60, а также все мероприятия, связанные с ее выходом.

Работа над новой версией в данный момент завершена примерно на 75%, ибо недописаны:

1. Подкатегории (пока не написана функция определения пути к категории торрента, тобиш например Игры / Windows / RPG), а также кеш к ним + реорганизация системы тегов (или ее удаление?), т.к. надо учитывать что теги должны распространяться на дочерние категории тоже.
2. Ограничение на просмотр логов
3. Скрипт тестового трекера (jQuery проверка, подтверждение, снятие подтверждения и т.д. - уже успешно работают)
4. Контроль над читерами, нужен ли он вообще?, ибо вещь это бесполезная по сути.

Все остальные нововведения, вроде TinyMCE, мода страниц, бинарного анонсера с возможностью переключения, улучшенной мультитрекерности с менеджером ретрекеров реализованы и успешно вроде бы функционируют.
Единственное - пугает нагрузка, которая показывается в блоке, но возможно это неправда, ибо у меня при активных 40 пирах показывает 20%... в общем надо тестировать.

Кстати о порядке выхода альфа-бета версий:

Сначала будет приватная альфа, получат ее только те, кто запишется на тестирование.
Потом будет приватная бета, с учетом исправлений альфы естественно, получат ее записавшиеся ранее на тестирование, а также владельцы трекеров с количеством пиров от 1000, чтобы протестировали производительность.
Потом будет релиз-кандидат, который я отдам в руки верстальщиков (я их так называю), которые приведут его к состоянию Valid XHTML.
И лишь после этого, приняв работу от верстальщиков, будет выпущен полноценный публичный релиз.

В общем работы вагон и тележка.

Первая альфа расчетно должна быть доступна к дню победы, может и раньше, но не факт.

Any comments?
 
Лучше подождать полностью готовый двиг.
 
  • Заблокирован
  • #8
ссылка на демо-трекер устарела :(
 
Поправте пожалуйста ссылку на 2.40 версию.Ссылка битая.
 
1. Маленькая оптимизация (16 запросов вместо 18)

Так как сам занимаюсь большим трекером на схожем движке, то могу сказать что 16 запросов это очень много. Скрипт спокойно может работать на 2-5. А главная страница после первого открытия дает 0 запросов спокойно, это не теряя функционала
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху