- 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, пусть и не очень большим, является платность дополнений, например, для пользовательских блогов.
По большому счету, недостатков у форума нет. Его можно рекомендовать для крупных серьезных проектов именно из-за его надежности и устойчивости ко всевозможным атакам. Как следствие, он создает существенную нагрузку на сервер, особенно с установленными дополнениями, но для серьезных проектов обычно используют серьезные сервера и серьезных администраторов.
Ты наверняка неоднократно видел форумы на движке 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!
vBulletin (сокращенно vB) - мощный, полностью настраиваемый форум с высоким потенциалом для расширения возможностей. Он был написан с помощью самого быстроразвивающегося языка интернета - PHP, и совместим с высокоэффективной и очень быстрой базой данных MySQL. Из преимуществ этого форума нужно выделить: быструю и эффективную работу с базой данных, интерфейс состоящий из шаблонов, мощную поисковую систему, мультиязычность, поддержку профилей пользователей, мощную и удобную панель администратора, возможность создания неограниченного количества тем и сообщений, оценку тем, уведомления по email и многое другое
vBulletin 3.8: Карты раскрыты
Социальные группы - Обсуждения:
* Сообщения в соц. группах могут обсуждаться (от переводчика: а-ля цитирование новостей, блог-чатинг, в дальнейшем - обсуждения)
* Обсуждения сортируются по автору, ответам и последнему сообщению
* Обсуждения могут фильтроваться с помощью полнотекстного поиска в заголовках (от переводчика: просто набирая часть заголовка)
* Обсуждения могут модерироваться со страницы (быстрое меню модерирования)
* Обсуждения маркируются прочтёнными всеми способами движка (БД, куки) с возможностью перехода к первому непрочтённому сообщению
* Пользователи могут подписываться на обсуждения и получать e-mail уведомления о новых сообщениях
* Подписка на обсуждения управляется в пользовательских настройках (Мой кабинет)
* Личные обсуждения имеют соц. закладки (управляемые пользователем) (от переводчика: видимо как в темах форума, только у себя в соц. группах и настраивается не модераторами, а самими пользователями)
* Новые "Can Always" (от переводчика: постоянные?) права для создания и просмотра обсуждений и сообщений с упрощённым доступом.
* Отзывы переработаны для пользователей без javascript.
* Модераторы могут быстро редактировать сообщения в соц. группах используя AJAX.
* Сообщения сортируются по возрастанию, что более интуитивно понятно в тематических обсуждения (от переводчика: не совсем понятно что значить по возрастанию, но скорее всего по номерам сообщения, тематические обсуждения - сгруппированные в соц. группах сообщения)
* Пользователи могу настроить их группы так, чтобы только владелец группы мог создавать обсуждения.
* Отмодерированные и удалённые обсуждения группируются (выделяются) в пользовательских настройках (Мой кабинет) где можно продолжить модерирование.
* Модераторские права разделены для обсуждений и тем, включая удаление (от переводчика: "мухи отдельно, котлеты отдельно", удаление и того и другого тоже отдельно)
* Во время удаления/перемещения обсуждений проводятся специальные запросы с БД и данными, для ускорения работы.
* При обновлении с версий ниже 3.8, существующие сообщения перемещаются в обсуждение, с именем, как у группы.
* Инфо по соц. группе скрыто, когда пользователь просматривает обсуждение.
Изменения в социальных группах:
* Соц. группы маркируются прочтёнными БД и куки методами, базируясь на сообщениях и обсуждениях
* "Отметить всё" отметит прочтёнными все обсуждения в группе с помощью AJAX
* Можно подписываться на соц. группы, подписанные группы выделяются в раздел в пользовательских настройках (Мой кабинет)
* Соц. группы теперь выделяются в отдельные категории/разделы
* Категории соц. групп отображаются в выпадающем списке, списке групп и инфо о группах
* Новая страница отображает случайную группу, Ваши группы, новые группы и группы, созданные Вами
* По созданным Вами группам можно перемещаться с помощью AJAX и отображать информацию о группе, включая участвующих пользователей и отмодерированное
* Облако категорий (от переводчика: как облако тегов) отображается в обзоре групп (со всеми опциями отображения популярных)
* Категории могут быть созданы, удалены или объеденены в панели администратора
* При обновлении с версий ниже 3.8 существующие группы перемещаются в группу "Без категории", которая может быть переименована
* Группы могут быть отфильтрованы по категориям, через облако категорий или расширенный поиск
* Соц. группы могут иметь иконку. Иконка отображается в информации о группе и маленькая иконка отображается в списке групп
* Иконки групп, в которых состоит пользователь отображаются в его профиле
* Система управлениями правами позволяет управлять размером иконок и возможностью загружать анимированные иконки
* Иконки могут сохраняться как в базе данных, так и в файловой системе
* Новые права могут ограничить количество соц. групп, которые может создавать пользователь
* Соц. группы могут быть передаваться между пользователями. Передача группы будет выполнена, если получатель группы примет её
* Модераторы могут передавать группы другим пользователям. Это может быть полезно, когда владелец группы стал неактивным
Изменения в личных сообщениях:
* Возможность использовать новый "Быстрый ответ" для ответа на личные сообщения
* Новая пользовательская опция, позволяющая сохранять копию отправляемого сообщения по умолчанию, включая и отправку через форму быстрого ответа
* Личные сообщения могут быть отсортированы по заголовку, дате и отправителю
* Личные сообщения можно фильтровать по отправителю, заголовку, дате получения
* Контроль сообщений. Админы могут установить временный период и максимальное количество сообщений для каждой группы.
* Выбранные сообщения запоминаются на всех страницах для последущих действий (перемещение, удаление и др.)
Профиль:
* Теперь пользователь может выбирать, какие части профиля видимы и для кого
* Произвольные поля пользовательского профигя могут настраиваться админом
* Изображения могут быть перемещены с одного альбома в другой
* Обложка альбома создаётся заново, если изображение обложки было перемещено или альбом назначения не имел обложки
Лайтбокс:
* Лайтбоксы теперь могут использоваться для просмотра всех картинок в сообщении
* Кнопки "Предыдущий" и "Следующий" могут использоваться для навигации по прикреплённым файлам и изменяются при достижении первого/последнего изображения
Прочие изменения и дополнения:
* Изменения в системе CAPTCHA
* Теги тем теперь могут быть объеденены и переименованы
* Выбор тегов в панели администратора запоминается на всех страницах
* Новая ссылка на правила теперь настраиваемая и расположена внизу страниц по умолчанию
* Обновлена ссылка на список пользователей: теперь есть подменю на различные списки форума (соц. группы, изображения и альбомы, контакты и друзья и список пользователей)
* Удалённые и отмодерированные сообщения теперь свёрнуты в панели управления
* Навороты с подменю в ссылках в различных частях форума
* Изменения в меню в панели пользователя
* Новые права миниатюр в сообщениях. Позволяют просматривать миниатюры, но не позволяют просматривать полное изображение.
* Улучения в RSS: фильтры
* Изменения в шаблонах, сравнениях шаблонов
* Права в префиксах тем - префиксы могут использовать определённые группы пользователей
* Поддержка TypePad анти-спама
* Проверка доступности имени пользователя во время регистрации с помощью AJAX
* Уведомления теперь можно закрыть только после их прочтения
* История редактирования сообщений очищается через панель администратора
* Правила форума можно просматривать вне процесса регистрации
* Уведомления через личные сообщения
* Очистка папок подписки в один клик
* Быстрое редактирование в соц. группах в разделах "Сообщения посетителей" и "Комментарии к изображениям"
* Новые параметры даты для уведомлений
* Улучшения в редактировании списка контактов.
Основные преимущества:
- Быстрая и эффективная основа на базе данных
- Интерфейс, состоящий из шаблонов
- Мощная поисковая система
- Многоязыковая поддержка
- Профили пользователей
- Мощная и удобная панель администратора
- Неограниченное количество разделов/тем/сообщений
- Уведомления по 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, убедиться что всё работает корректно: