Какой форум лучше vBulletin или PunBB. Какой форум лучше vBulletin или PunBB Непорочный vbulletin

Любой движок, требует определенных действий для оптимизации его для лучшей и быстрой работы. В нашем же случае мы поговорим об оптимизации Vbulletin 4.

Так как движок нашего форума постоянно обновляется, я не буду писать об оптимизации более ранних версий Vbulletin , а начну именно с версии 4.1.12. Хотя возможно, постепенно буду дополнять эту статью и оптимизацией для предыдущих версий, так как не все переходят на более новые.

Здесь я приведу несколько примеров, чтобы сделать Ваш форум Vbulletin быстрее и лучше (начиная с самых простых вещей, переходя к более сложным). Пожалуйста, имейте в виду, что те вещи которые работают у меня, не обязательно будут работать и у вас. Поэтому все изменения вы делаете на свой страх и риск.

Отключение списка пользователей.

Существует простой способ, просто отключить функцию в AdminCP. (Settings -> Options -> User Listing Options)

Это не глобально конечно, и вы можете это пропустить и не делать, просто задайте себе вопрос нужно ли вам это? Так как имея список пользователи могут сортировать его, посмотреть у кого больше сообщений, репутация и так далее. Ваши пользователи пользуются этим? Наверное, нет…, когда вы сами в последний раз пользовались этим списком?

Как по мне, так мне кажется, что данные списки только на пользу спамерам, так как это самый простой способ собрать все именна участников форума Vbulletin 4 для рассылки спама в личных сообщениях.

Кроме этого, запрос который необходим для генерации списка пользователей ужасен для серверов баз данных и может привести к большой загрузке сервера.

Увеличение скорости при обработке списка личных сообщений.

Если вы некогда не импортировали личные сообщения от внешних источников с помощью Impex или других средств, вы можете смело положиться на сортировку по ID для личных сообщений. Сортировка по ID будет делать так, чтобы вашему серверу базы данных не приходилось сбрасывать личные сообщения во временную таблицу для выполнения сортировки (делая запрос намного быстрее).

Чтобы сделать это, нужно прописать небольшой модуль с расположением в private_messagelist_filter и прописать в нем следующее:

If ($sortfield == "pmtext.dateline") $sortfield = "pm.pmid";

И все, вы только что сделали private.php на ~ 20% быстрее.


Настраиваем более эффективный поиск последних сообщений от пользователя.

Идем на фтп, ищем файл includes /class_userprofile.php, и заменяем в нем данные следующим образом, ищем:

$getlastposts = $this->registry->db->query_read_slave(" SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "post AS post INNER JOIN " . TABLE_PREFIX . "thread AS thread USING (threadid) WHERE thread.visible = 1 AND post.userid = " . $this->userinfo["userid"] . " AND post.visible = 1 ORDER BY post.dateline DESC LIMIT 20 ");

и заменяем на это (а конкретнее ORDER BY):

$getlastposts = $this->registry->db->query_read_slave(" SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "post AS post INNER JOIN " . TABLE_PREFIX . "thread AS thread USING (threadid) WHERE thread.visible = 1 AND post.userid = " . $this->userinfo["userid"] . " AND post.visible = 1 ORDER BY post.postid DESC LIMIT 20 ");

Это делает запрос немного правильнее, чем он существует в данном виде. Таким образом не придется делать сортировку во временную таблицу. Для пользователей у которых более 1000 сообщений, исходный запрос занял бы около 10 секунд, в нашем же случае намного меньше. Это в первую очередь относится к профилю пользователя Vbulletin 4, для отображения последних сообщений.

Проверка индекса тем.

Если ваши форумы имеют порядок сортировки по умолчанию, и которые установлены без изменений, таких какие мы делали выше, убедитесь, что все ваши индексы находятся в своих таблицах. были случаи когда индексы по неведомым мне причинам пересекались и некоторые форумы не открывались.

Я предлагаю сделать так, чтобы сортировка по умолчанию была в виде даты (столбец который использует эти данные называется «dateline»), и чтобы это реализовать, выполним запрос:

ALTER TABLE thread ADD INDEX forumid2_dp (forumid, visible, sticky, dateline)

Это запрос применим ко мне конкретно, в вашем случае forumid2_dp должен иметь ваше имя. Используйте на свой страх и риск.

Будьте осторожны при установке дополнений.

Просто потому, что кто-то делает модули и хаки, не означает, что они сделаны именно для вас, работали на больших форумах Vbulletin 4 и не имеют ошибок. Прекрасным примером служат сообщения о массовых взломах, через тот или иной хак.

Конечно, можно предположить, что разработчики не могут всего учесть, и перелопатить все хаки, чтобы они не конфликтовали, но… Убедитесь, что модуль Vbulletin не вызывает больших нагрузок базы данных, убедитесь, что в хак имеет потенциал к защите от SQL инъекций или XSS. К сожалению, приложений и модификаций тысячи, и просто не реально все проверить. Лучше будет если все хаки вы будете писать себе сами, или заказывать у кого-либо. Конкретно под вас и ваши задачи.

Не используйте таблицы в InnoDB.

Тут конечно мне могут плюнуть в лицо, так как эта тема уже обсуждалась миллион раз, но по своему опыту могу сказать, что я работаю 100% на MyISAM таблицах для любого действия. Бывает обрабатываю 1000 запросов в секунду.

Если вы уже начинаете психовать где при запросах у вас все повисает, особенно в новом поиске Vbulletin, смените таблицы InnoDB в MyISAM. MyISAM отвечает быстрее на отдельные запросы, так как не нужно управлять блокировкой отдельных записей. InnoDB работает быстрее в целом, но только потому, что позволяет выполнять запросы одновременно. если ваши запросы и так исполняются быстро под MyISAM, нет необходимости переходить на InnoDB. ИМХО.

Рейтинг статьи

0%

Рейтинг

User Rating: 0.35 (1 votes)

Ты наверняка неоднократно видел форумы на движке vBulletin. Форумы как таковые уже не на пике моды, но vBulletin по-прежнему один из самых популярных движков. В его последней (пятой) версии нашли несколько уязвимостей, которые способны сильно испортить жизнь админу. В этой статье я расскажу, как они эксплуатируются.

Первая проблема заключается в некорректной фильтрации пользовательских данных. О ней сообщил независимый исследователь безопасности, который пожелал остаться анонимным. Уязвимость, хоть и имеет некоторые ограничения, получила статус критической, потому что позволяет читать любые файлы и выполнять произвольный код на целевой системе.

Вторая уязвимость была найдена исследователями из компании TRUEL IT и получила идентификатор CVE-2017-17672. Она связана с особенностями десериализации данных в движке и может быть использована атакующим для удаления произвольных файлов в системе.

Полные отчеты с деталями обеих проблем были опубликованы в рамках программы Beyond Security от SecuriTeam. Там же есть PoC-эксплоиты для демонстрации уязвимостей. Давай по порядку пройдемся по всему этому.

Приготовления

В качестве сервера я использовал дистрибутив WAMP.

Читаем файлы, выполняем команды

Итак, причина первой уязвимости - некорректная логика при обработке параметра routestring, которая позволяет атакующему добавить через include любой файл на диске и выполнить PHP-код, который в нем находится.

Наш путь начинается с самого главного файла - index.php, где происходит базовая инициализация приложения.

/index.php
48: $app = vB5_Frontend_Application::init("config.php"); ... 60: $routing = $app->getRouter(); 61: $method = $routing->getAction(); 62: $template = $routing->getTemplate(); 63: $class = $routing->getControllerClass();

Посмотрим на метод vB5_Frontend_Application::init .

/includes/vb5/frontend/application.php
13: class vB5_Frontend_Application extends vB5_ApplicationAbstract 14: { 15: public static function init($configFile) 16: { 17: parent::init($configFile); 18: 19: self::$instance = new vB5_Frontend_Application(); 20: self::$instance->router = new vB5_Frontend_Routing(); 21: self::$instance->router->setRoutes();

Здесь нас интересует метод setRoutes .

47: public function setRoutes() 48: { 49: $this->processQueryString(); ... 54: if (isset($_GET["routestring"])) 55: { 56: $path = $_GET["routestring"];

В переменную $path попадает значение юзердаты из параметра routestring . В него можно передать путь до страницы форума, и она будет загружена.



Допустим, мы передали /test .

После назначения переменной следует кусок кода, который избавляется от слеша в начале строки, если он присутствует.

/includes/vb5/frontend/routing.php
75: if (strlen($path) AND $path{0} == "/") 76: { 77: $path = substr($path, 1); // $path = "test" 78: }
includes\vb5\frontend\routing.php
83: if (strlen($path) > 2) 84: { 85: $ext = strtolower(substr($path, -4)) ; 86: if (($ext == ".gif") OR ($ext == ".png") OR ($ext == ".jpg") OR ($ext == ".css") 87: OR (strtolower(substr($path, -3)) == ".js")) 88: { 89: header("HTTP/1.0 404 Not Found"); 90: die(""); 91: } 92: }

Как видишь, проверка довольно странная. Как минимум смущает наличие зашитого прямо в код списка запрещенных расширений. Да и вообще сам факт, что расширение получают, вырезая четыре символа с конца строки (строка 85), вызывает недоумение. В общем, если мы пытаемся получить файл с расширениями gif, png, jsp, css или js, то сервер вернет страницу 404 и выполнение скрипта прекратится. Когда все проверки пройдены, с помощью callApi вызывается метод getRoute из класса vB_Api_Route . Он ищет подходящие роуты, исходя из переданной пользователем информации.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

Основные преимущества:

  • Быстрая и эффективная основа на базе данных
  • Интерфейс, состоящий из шаблонов
  • Мощная поисковая система
  • Многоязыковая поддержка
  • Профили пользователей
  • Мощная и удобная панель администратора
  • Неограниченное количество разделов/тем/сообщений
  • Уведомления по email
  • Поддержка COPPA

Ввиду того что демки форума, которую можно инсталлировать, фирма-производитель не предоставляет, пришлось устанавливать левую версию, скачанную с какого-то варезника. Так что инструкция может не совсем соответствовать процессу установки лицензионного форума. После инсталляции, сайт был удалён, по назначению не использовался.

Для инсталляции vBulletin, переходим в панель управления хостингом (кнопка с шестерёнкой напротив заказа хостинга в биллинге), там в "Менеджер файлов", в нём переходим в директорию "www". Нажимаем кнопку "Закачать файл в текущую директорию":

Указываем путь к файлу на своём компьютере:

Выделяем архив с vBulletin, распаковываем его:

Удаляем ненужные нам файлы и директории, в том числе директорию нашего www домена - при условии что там у вас ничего нужного нет. Если вы ставите не в корень сайта, или в директории сайта есть что-то нужное - удалять директорию www домена не надо:

Выделяем директорию с инсталлятором vBulletin, переименовываем её:

Вводим имя нашего сайта, в качестве имени директории:

Переходим в раздел "Базы данных", панели управления хостингом:

Создаём новую базу данных MySQL, и пользователя, с полными правами доступа к ней:

Обратите внимание, что и пользователь и база автоматически получили преффикс, по имени вашего аккаунта на хостинг-сервере:

Заходим на главную страницу нашего сайта, получаем такую ошибку vBulletin:

Вбиваем путь к инсталлятору в адресной строке, надо дописать "install/install.php", после чего запускется программа установки форума vBulletin:

Установщик vBulletin проверяет наличие файлов:

На следующем шаге присходит проверка соединения с базой данных, она не проходит - т.к. в файле конфигурации форума вбиты неверные данные:

Возвращаемся в панель управления хостингом, файловый менеджер, заходим в директорию с форумом, дальше субдиректория "includes". Открываем файл "config.php":

Вносим верные данные от БД в конфигурационный файл, после чего его закрываем:

Возвращаемся на сайт, к инсталлятору. нажимаем "F5", на этот раз всё хорошо, соединение с базой срослось:

Программа установки vBulletin создаёт таблицы в базе данных:

Инсталлятор vBulletin меняет типы некоторых таблиц:

Вносятся данные в базу данных:

Имортируются языки:

Импортируются стили:

Импортируется справка:

Настройки по умолчанию не трогаем, программа установки vBulletin всё верно определила:

Импортируются настройки по умолчанию:

Вводим данные администратора vBulletin:

Администратор vBulletin успешно добавлен:

Установка vBulletin на хостинг успешно завершена:

Следуя последнему совету инсталлятора, удаляем ненужные файлы:

Можно зайти на форум vBulletin, убедиться что всё работает корректно:

vBulletin (сокращенно vB) - мощный, полностью настраиваемый форум с высоким потенциалом для расширения возможностей. Он был написан с помощью самого быстроразвивающегося языка интернета - PHP, и совместим с высокоэффективной и очень быстрой базой данных MySQL. Из преимуществ этого форума нужно выделить: быструю и эффективную работу с базой данных, интерфейс состоящий из шаблонов, мощную поисковую систему, мультиязычность, поддержку профилей пользователей, мощную и удобную панель администратора, возможность создания неограниченного количества тем и сообщений, оценку тем, уведомления по email и многое другое

vBulletin 3.8: Карты раскрыты

Социальные группы - Обсуждения:

* Сообщения в соц. группах могут обсуждаться (от переводчика: а-ля цитирование новостей, блог-чатинг, в дальнейшем - обсуждения)
* Обсуждения сортируются по автору, ответам и последнему сообщению
* Обсуждения могут фильтроваться с помощью полнотекстного поиска в заголовках (от переводчика: просто набирая часть заголовка)
* Обсуждения могут модерироваться со страницы (быстрое меню модерирования)
* Обсуждения маркируются прочтёнными всеми способами движка (БД, куки) с возможностью перехода к первому непрочтённому сообщению
* Пользователи могут подписываться на обсуждения и получать e-mail уведомления о новых сообщениях
* Подписка на обсуждения управляется в пользовательских настройках (Мой кабинет)
* Личные обсуждения имеют соц. закладки (управляемые пользователем) (от переводчика: видимо как в темах форума, только у себя в соц. группах и настраивается не модераторами, а самими пользователями)
* Новые "Can Always" (от переводчика: постоянные?) права для создания и просмотра обсуждений и сообщений с упрощённым доступом.
* Отзывы переработаны для пользователей без javascript.
* Модераторы могут быстро редактировать сообщения в соц. группах используя AJAX.
* Сообщения сортируются по возрастанию, что более интуитивно понятно в тематических обсуждения (от переводчика: не совсем понятно что значить по возрастанию, но скорее всего по номерам сообщения, тематические обсуждения - сгруппированные в соц. группах сообщения)
* Пользователи могу настроить их группы так, чтобы только владелец группы мог создавать обсуждения.
* Отмодерированные и удалённые обсуждения группируются (выделяются) в пользовательских настройках (Мой кабинет) где можно продолжить модерирование.
* Модераторские права разделены для обсуждений и тем, включая удаление (от переводчика: "мухи отдельно, котлеты отдельно", удаление и того и другого тоже отдельно)
* Во время удаления/перемещения обсуждений проводятся специальные запросы с БД и данными, для ускорения работы.
* При обновлении с версий ниже 3.8, существующие сообщения перемещаются в обсуждение, с именем, как у группы.
* Инфо по соц. группе скрыто, когда пользователь просматривает обсуждение.

Изменения в социальных группах:

* Соц. группы маркируются прочтёнными БД и куки методами, базируясь на сообщениях и обсуждениях
* "Отметить всё" отметит прочтёнными все обсуждения в группе с помощью AJAX
* Можно подписываться на соц. группы, подписанные группы выделяются в раздел в пользовательских настройках (Мой кабинет)
* Соц. группы теперь выделяются в отдельные категории/разделы
* Категории соц. групп отображаются в выпадающем списке, списке групп и инфо о группах
* Новая страница отображает случайную группу, Ваши группы, новые группы и группы, созданные Вами
* По созданным Вами группам можно перемещаться с помощью AJAX и отображать информацию о группе, включая участвующих пользователей и отмодерированное
* Облако категорий (от переводчика: как облако тегов) отображается в обзоре групп (со всеми опциями отображения популярных)
* Категории могут быть созданы, удалены или объеденены в панели администратора
* При обновлении с версий ниже 3.8 существующие группы перемещаются в группу "Без категории", которая может быть переименована
* Группы могут быть отфильтрованы по категориям, через облако категорий или расширенный поиск
* Соц. группы могут иметь иконку. Иконка отображается в информации о группе и маленькая иконка отображается в списке групп
* Иконки групп, в которых состоит пользователь отображаются в его профиле
* Система управлениями правами позволяет управлять размером иконок и возможностью загружать анимированные иконки
* Иконки могут сохраняться как в базе данных, так и в файловой системе
* Новые права могут ограничить количество соц. групп, которые может создавать пользователь
* Соц. группы могут быть передаваться между пользователями. Передача группы будет выполнена, если получатель группы примет её
* Модераторы могут передавать группы другим пользователям. Это может быть полезно, когда владелец группы стал неактивным

Изменения в личных сообщениях:

* Возможность использовать новый "Быстрый ответ" для ответа на личные сообщения
* Новая пользовательская опция, позволяющая сохранять копию отправляемого сообщения по умолчанию, включая и отправку через форму быстрого ответа
* Личные сообщения могут быть отсортированы по заголовку, дате и отправителю
* Личные сообщения можно фильтровать по отправителю, заголовку, дате получения
* Контроль сообщений. Админы могут установить временный период и максимальное количество сообщений для каждой группы.
* Выбранные сообщения запоминаются на всех страницах для последущих действий (перемещение, удаление и др.)

Профиль:

* Теперь пользователь может выбирать, какие части профиля видимы и для кого
* Произвольные поля пользовательского профигя могут настраиваться админом

* Изображения могут быть перемещены с одного альбома в другой
* Обложка альбома создаётся заново, если изображение обложки было перемещено или альбом назначения не имел обложки

Лайтбокс:

* Лайтбоксы теперь могут использоваться для просмотра всех картинок в сообщении
* Кнопки "Предыдущий" и "Следующий" могут использоваться для навигации по прикреплённым файлам и изменяются при достижении первого/последнего изображения

Прочие изменения и дополнения:

* Изменения в системе CAPTCHA
* Теги тем теперь могут быть объеденены и переименованы
* Выбор тегов в панели администратора запоминается на всех страницах
* Новая ссылка на правила теперь настраиваемая и расположена внизу страниц по умолчанию
* Обновлена ссылка на список пользователей: теперь есть подменю на различные списки форума (соц. группы, изображения и альбомы, контакты и друзья и список пользователей)
* Удалённые и отмодерированные сообщения теперь свёрнуты в панели управления
* Навороты с подменю в ссылках в различных частях форума
* Изменения в меню в панели пользователя
* Новые права миниатюр в сообщениях. Позволяют просматривать миниатюры, но не позволяют просматривать полное изображение.
* Улучения в RSS: фильтры
* Изменения в шаблонах, сравнениях шаблонов
* Права в префиксах тем - префиксы могут использовать определённые группы пользователей
* Поддержка TypePad анти-спама
* Проверка доступности имени пользователя во время регистрации с помощью AJAX
* Уведомления теперь можно закрыть только после их прочтения
* История редактирования сообщений очищается через панель администратора
* Правила форума можно просматривать вне процесса регистрации
* Уведомления через личные сообщения
* Очистка папок подписки в один клик
* Быстрое редактирование в соц. группах в разделах "Сообщения посетителей" и "Комментарии к изображениям"
* Новые параметры даты для уведомлений
* Улучшения в редактировании списка контактов.

  • From:
  • Registered: 2014.07.07
  • Posts: 3,796
  • I just like PunBB:
  • 5 years, 7 months, 6 days,
  • Likes: 470

Topic: Какой форум лучше vBulletin или PunBB

VBulletin (Вобла или Булка, как его любят у нас называть) – один из старейших коммерческих форумных движков, написанных при помощи технологий PHP и MySQL. Начиная с выхода самой первой версии в 2000 году, была проделана колоссальная работа по улучшению функционала, что позволило VB попасть в список лучших программных продуктов.

Лицензия VBulletin будет стоить вам порядка 250 долларов. Не сомневайтесь, это вполне оправданная трата и уж точно окупит себя экономией рабочего времени и нервных клеток. Большая часть из этих денег идет разработчикам и программистам, которые в дальнейшем пустят их на доработку функционала и выпуск заплаток и дополнений (да, в течение года все обновления будут поставляться вам бесплатно).

2 Reply by PunBB

  • From: Moscow, Sovkhoznay 3, apt. 98
  • Registered: 2014.07.07
  • Posts: 3,796
  • I just like PunBB:
  • 5 years, 7 months, 6 days,
  • Likes: 470

Перечислением всех функций VBulletin заниматься не имеет смысла. Там реализовали практически все, что может понадобиться администраторам форума. Подкастинг, поддержка мультицитирования, разделение на социальные группы и сообщества, рейтинговая система (репутация). Базовую комплектацию можно дополнить сторонними расширениями.

Движок форума VBulletin создает серьезную нагрузку на сервер, особенно если установлены сторонние дополнения и скрипты. Чтобы в дальнейшем избежать проблем с загрузкой страниц, придется раскошелиться на нормальный хостинг. Особенно если в будущем прогнозируете своему ресурсу большую посещаемость.

3 Reply by PunBB

  • From: Moscow, Sovkhoznay 3, apt. 98
  • Registered: 2014.07.07
  • Posts: 3,796
  • I just like PunBB:
  • 5 years, 7 months, 6 days,
  • Likes: 470

Re: Какой форум лучше vBulletin или PunBB

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

VBulletin, реализует масштабные идеи как нельзя лучше. Постоянные обновления, высококачественный сервис, дополнительные расширения и надежные механизмы безопасности – все это вполне оправдывает потраченные на продукт средства.

4 Reply by PunBB

  • From: Moscow, Sovkhoznay 3, apt. 98
  • Registered: 2014.07.07
  • Posts: 3,796
  • I just like PunBB:
  • 5 years, 7 months, 6 days,
  • Likes: 470

Re: Какой форум лучше vBulletin или PunBB

Все функции перечислять нет смысла – в нем (или же в дополнениях) реализовано практически все, что может понадобиться администратору для создания форума. Там есть и мультицитирование, и поддержка подкастинга, и сообщества пользователей, и социальные группы, и гибкая система репутации и многое другое.

Конечно, для vBulletin есть большое количество дополнений и пользовательских сообществ, так что никаких проблем с обслуживанием не будет, особенно с учетом того, что существует официальная служба поддержки. Минусом vBulletin, пусть и не очень большим, является платность дополнений, например, для пользовательских блогов.

По большому счету, недостатков у форума нет. Его можно рекомендовать для крупных серьезных проектов именно из-за его надежности и устойчивости ко всевозможным атакам. Как следствие, он создает существенную нагрузку на сервер, особенно с установленными дополнениями, но для серьезных проектов обычно используют серьезные сервера и серьезных администраторов.

Публикации по теме