Kinokpk.com releaser 3 - CMS / торрент трекер / индексатор торрентов

Оптимизирован и безопасен, с уникальной рейтинговой системой и мультитрекерностью.
Текущее время: Пн сен 06, 2010 11:14 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение

"Quote"
 Заголовок сообщения: Встроеный форум 3.0
СообщениеДобавлено: Вс июл 04, 2010 2:25 am 
Не в сети

Зарегистрирован: Чт июл 09, 2009 3:28 pm
Сообщения: 234
Мод Grand Forum ака Впаяный [BETA] 2
Переписал под Kinokpk 3.0 но не доконца
Обратить внимание на редактор и XSS
И вызказываем свои способы как это исправить.
Запрос в базу
ALTER TABLE `users` ADD `forum_access` DATETIME NOT NULL AFTER `last_access` ;


--
-- Структура таблицы `forums`
--

CREATE TABLE IF NOT EXISTS `forums` (
  `sort` tinyint(3) unsigned NOT NULL default '0',
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(60) NOT NULL default '',
  `description` varchar(200) default NULL,
  `postcount` int(10) unsigned NOT NULL default '0',
  `topiccount` int(10) unsigned NOT NULL default '0',
  `forid` tinyint(4) default '0',
  PRIMARY KEY  (`id`),
  KEY `forid` (`forid`)
) ENGINE=MyISAM;

-- --------------------------------------------------------

--
-- Структура таблицы `overforums`
--

CREATE TABLE IF NOT EXISTS `overforums` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(60) NOT NULL default '',
  `forid` tinyint(3) unsigned NOT NULL default '0',
  `sort` tinyint(3) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;

-- --------------------------------------------------------

--
-- Структура таблицы `posts`
--

CREATE TABLE IF NOT EXISTS `posts` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `topicid` int(10) unsigned NOT NULL default '0',
  `userid` int(10) unsigned NOT NULL default '0',
  `added` datetime default NULL,
  `body` text,
  `editedby` int(10) unsigned NOT NULL default '0',
  `editedat` datetime NOT NULL default '0000-00-00 00:00:00',

  PRIMARY KEY  (`id`),
  KEY `topicid` (`topicid`),
  KEY `userid` (`userid`),
  FULLTEXT KEY `body` (`body`)
) ENGINE=MyISAM;

-- --------------------------------------------------------
--
-- Структура таблицы `readposts`
--

CREATE TABLE IF NOT EXISTS `readposts` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `userid` int(10) unsigned NOT NULL default '0',
  `topicid` int(10) unsigned NOT NULL default '0',
  `lastpostread` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `topicid` (`topicid`)
) ENGINE=MyISAM;

-- --------------------------------------------------------

--
-- Структура таблицы `topics`
--

CREATE TABLE IF NOT EXISTS `topics` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `userid` int(10) unsigned NOT NULL default '0',
  `subject` varchar(40) default NULL,
  `locked` enum('yes','no') NOT NULL default 'no',
  `forumid` int(10) unsigned NOT NULL default '0',
  `lastpost` int(10) unsigned NOT NULL default '0',
  `sticky` enum('yes','no') NOT NULL default 'no',
  `views` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `userid` (`userid`),
  KEY `subject` (`subject`),
  KEY `lastpost` (`lastpost`)
) ENGINE=MyISAM;

Добавить в cleanup.php
// update forum post/topic count
$forums = mysql_query("SELECT id FROM forums");
while ($forum = mysql_fetch_assoc($forums))
{
  $postcount = 0;
  $topiccount = 0;
  $topics = mysql_query("SELECT id FROM topics WHERE forumid=$forum[id]");
  while ($topic = mysql_fetch_assoc($topics))
  {
   $res = mysql_query("SELECT count(*) FROM posts WHERE topicid=$topic[id]");
   $arr = mysql_fetch_row($res);
   $postcount += $arr[0];
   ++$topiccount;
  }
  mysql_query("UPDATE forums SET postcount=$postcount, topiccount=$topiccount WHERE id=$forum[id]");
}
// update forum post/topic count

Вложение:
Форум.rar [23.62 Кб]
Скачиваний: 23


Вернуться к началу
 Профиль  
 

"Quote"
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 04, 2010 4:28 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн авг 17, 2009 2:34 pm
Сообщения: 761
Откуда: Из коробки
два файла забыл ...
preview.php в корень
<?
require "include/bittorrent.php";
dbconn(false);

header ("Content-Type: text/html; charset=windows-1251");
if(!isset($CURUSER))die("Войдите на сайт, для использования предпросмотра!");

if(isset($_GET['ajax']) && isset($_POST['msg'])) {
    $realmsg = iconv("utf-8", "Windows-1251",base64_decode($_POST['msg']));
    $ret = "<div style=\"border:1px solid black; padding: 10px;text-align:left;\">".format_comment($realmsg)."</div>";
    die($ret);
}

?>

и preview.js в папку js
var b64s  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='

function ajaxpreview(objname) {
     var ajax = new tbdev_ajax();
     ajax.onShow ('');
     var varsString = "";
     ajax.requestFile = "preview.php?ajax";
     var txt = enBASE64(document.getElementById(objname).value);
     ajax.setVar("msg", txt);
     ajax.method = 'POST';
     ajax.element = 'preview';
     ajax.sendAJAX(varsString);

}

//  base64_кодирование

   function enBASE64(input) {
      var output = "";
      var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
      var i = 0;

      input =_utf8_encode(input);

      while (i < input.length) {

         chr1 = input.charCodeAt(i++);
         chr2 = input.charCodeAt(i++);
         chr3 = input.charCodeAt(i++);

         enc1 = chr1 >> 2;
         enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
         enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
         enc4 = chr3 & 63;

         if (isNaN(chr2)) {
            enc3 = enc4 = 64;
         } else if (isNaN(chr3)) {
            enc4 = 64;
         }

         output = output +
         this.b64s.charAt(enc1) + this.b64s.charAt(enc2) +
         this.b64s.charAt(enc3) + this.b64s.charAt(enc4);

      }

      return output;
   }


//utf8_кодирование
function _utf8_encode (string) {
   string = string.replace(/\r\n/g,"\n");
   var utftext = "";

   for (var n = 0; n < string.length; n++) {

   var c = string.charCodeAt(n);

   if (c < 128) {
   utftext += String.fromCharCode(c);
                                     }
         
   else if((c > 127) && (c < 2048)) {
   
   utftext += String.fromCharCode((c >> 6) | 192);
   utftext += String.fromCharCode((c & 63) | 128);
            }
         
   else {
   
   utftext += String.fromCharCode((c >> 12) | 224);
   utftext += String.fromCharCode(((c >> 6) & 63) | 128);
   utftext += String.fromCharCode((c & 63) | 128);
           }

      }

   return utftext;
   }

_________________
" Я всегда видел то, чего другие не видели; а того, что видели другие, я не видел."
Где? Кто? Когда? а мы на Ресурсе Empirekino: радио, музыка, кино и прочая нечисть=)
Radio Dance Empire - Manipulation vol.2 <-- 2 получасовая тусовка от Radio Dance Empire - Manipulation vol.2
Radio Dance Empire - Dancing Therapy vs Manipulation vol.3 <-- 3 серия Manipulation была ознаменована событием. Совместно с Radio Show Dancing Therapy прозвучали. Очередные сливки Psy культуры.


Вернуться к началу
 Профиль  
 

"Quote"
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 04, 2010 6:37 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн авг 17, 2009 2:34 pm
Сообщения: 761
Откуда: Из коробки
единственно что придумал по поводу xss в поиске это примерно следующее

после
$keywords = (isset($_GET['keywords']) ? trim($_GET['keywords']) : '');

вставит
$keywords = htmlspecialchars(stripslashes($keywords));

в двух местах

но возможно нужно сделать вот такой код
$keywords = htmlspecialchars(stripslashes($_GET['keywords']));


точно не уверен

еще откапал вот такую хрень только незнаю как ее применить
<?php
// Защита от XSS

function _filter( $var , $sql = 0) {

   $var = strip_tags($var);
   $var=str_replace ("\n"," ", $var);
    $var=str_replace ("\r","", $var);
   $var = htmlentities($var);
   if ( $sql == 1) {
      $var = mysql_real_escape_string($var);
   }
   return $var;
}
?>
Использование:
<?php echo _filter($_GET['value']); ?>


Вторичный параметр $sql предназначен для защиты SQL-инъекций. Его нужно ставить в 1, когда вы фильтруете данные для SQL запроса, например:
SELECT... LIMIT 0, _filter($_GET['limit'],1)

_________________
" Я всегда видел то, чего другие не видели; а того, что видели другие, я не видел."
Где? Кто? Когда? а мы на Ресурсе Empirekino: радио, музыка, кино и прочая нечисть=)
Radio Dance Empire - Manipulation vol.2 <-- 2 получасовая тусовка от Radio Dance Empire - Manipulation vol.2
Radio Dance Empire - Dancing Therapy vs Manipulation vol.3 <-- 3 серия Manipulation была ознаменована событием. Совместно с Radio Show Dancing Therapy прозвучали. Очередные сливки Psy культуры.


Вернуться к началу
 Профиль  
 

"Quote"
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 04, 2010 10:44 am 
Не в сети
Sysop
Аватара пользователя

Зарегистрирован: Вс окт 11, 2009 7:12 pm
Сообщения: 926
Откуда: Ростов-на-Дону
ZAGor, есть функция makesafe()

_________________
Мои Моды: Серебро [2.70], Фильмы-онлайн [3.0], BlackJack [3.0], Смена ника [3.0], Заявка в аплоадеры [3.0]
Мои Платные Моды: AJAX Чат + Админка управления Чатом [2.70], Радио панель [3.0], Модераторы по категориям [2.7+]
Мой проект: BigFANGroup.org
Мои реквизиты: R146096461407, Z232273516187
Пишу моды. Цена договорная, пишите в асю 372914. Бесплатных консультаций не даю!!!


Вернуться к началу
 Профиль  
 

"Quote"
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 05, 2010 2:06 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн авг 17, 2009 2:34 pm
Сообщения: 761
Откуда: Из коробки
в двух местах найти
$keywords = (isset($_GET['keywords']) ? trim($_GET['keywords']) : '');

после добавить
$keywords = makesafe($keywords);

если я понял правильно Justera
либо вот так
$keywords = htmlspecialchars(makesafe($keywords));

_________________
" Я всегда видел то, чего другие не видели; а того, что видели другие, я не видел."
Где? Кто? Когда? а мы на Ресурсе Empirekino: радио, музыка, кино и прочая нечисть=)
Radio Dance Empire - Manipulation vol.2 <-- 2 получасовая тусовка от Radio Dance Empire - Manipulation vol.2
Radio Dance Empire - Dancing Therapy vs Manipulation vol.3 <-- 3 серия Manipulation была ознаменована событием. Совместно с Radio Show Dancing Therapy прозвучали. Очередные сливки Psy культуры.


Вернуться к началу
 Профиль  
 

"Quote"
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 05, 2010 2:30 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн авг 17, 2009 2:34 pm
Сообщения: 761
Откуда: Из коробки
ну вот что самое интересное так то что как ты говоришь что ты его сделал под 3.0 и продавал когда он даже не открываеться ? форум.пхп и просто тупо пустая страница ...

_________________
" Я всегда видел то, чего другие не видели; а того, что видели другие, я не видел."
Где? Кто? Когда? а мы на Ресурсе Empirekino: радио, музыка, кино и прочая нечисть=)
Radio Dance Empire - Manipulation vol.2 <-- 2 получасовая тусовка от Radio Dance Empire - Manipulation vol.2
Radio Dance Empire - Dancing Therapy vs Manipulation vol.3 <-- 3 серия Manipulation была ознаменована событием. Совместно с Radio Show Dancing Therapy прозвучали. Очередные сливки Psy культуры.


Вернуться к началу
 Профиль  
 

"Quote"
 Заголовок сообщения: Re:
СообщениеДобавлено: Пн июл 05, 2010 10:30 am 
Не в сети

Зарегистрирован: Чт дек 24, 2009 11:52 am
Сообщения: 76
ZAGor писал(а):
ну вот что самое интересное так то что как ты говоришь что ты его сделал под 3.0 и продавал когда он даже не открываеться ? форум.пхп и просто тупо пустая страница ...

Хорошь бред писать вывод ошибок on

_________________
Один из самых очевидных недостатков интернета заключается в том, что сеть предоставила возможность дебилам общаться с нормальными людьми.


Вернуться к началу
 Профиль  
 

"Quote"
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 29, 2010 11:54 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 18, 2009 5:41 pm
Сообщения: 169
Я поставил но когда зашел лишь пустая белая страница


Вернуться к началу
 Профиль  
 

"Quote"
 Заголовок сообщения:
СообщениеДобавлено: Пт авг 06, 2010 7:51 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 18, 2009 5:41 pm
Сообщения: 169
Может у кого он есть за всеми закрытыми XSS и рабочая готов купить пишите в личку!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB