Баг в phpBB - доступ к базе данных, встречается в версиях phpBB 2.0.x
Суть бага :: в переменную $topic_id можно вставить собственный SQL-запрос, который выдаст хакеру запрошенную им информацию.
Например, если мы имеем сайт domen.ru и форум на нём, то подобная ссылка domen.ru/forum/viewtopic.php?topic_id=-1 UNION SELECT следующий запрос... приведёт к выполнению этого запроса, который, между прочим, может получить и пароли Ваших пользователей...
Поэтому суть заключается в обезвреживании информации, находящейся в $topic_id
Заплатка:
Обезвреживание элементарно:
1. откройте корневую директорию форума и в ней - файл viewtopic.php
2. найдите строку
Код: Выделить всё
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
Код: Выделить всё
$topic_id = intval($topic_id);
Данная тема также обсуждалась на <http://www.mazafaka.ru/forum/>
==================================
Баг в phpBB - переполнение таблицы сессий
Вы можете скачать заплату для бага, встречающегося в версиях phpBB 2.0.x
Суть бага
Cостоит она в том, что форум хранит в БД все сессии, не удаляя их, или удаляя с такой периодичностью, что, в конце концов, таблица сессий переполняется и форум выдаёт ошибку "phpBB: Critical error. Error creating new session", т. к. не может работать дальше с этой кучей сессий.
Ошибка возникает приблизительно через месяц после начала эксплуатации форума - всё зависит от интенсивности его использования.
Подробнее об ошибке Вы можете прочитать здесь:
<http://myphpbb.com.ru/?articles/bugs>
Заплата
Чтобы устранить ошибку выполните следующее:
1. откройте корневую директорию форума
2. откройте файл includes/sessions.php
3. найдите строку 152
4. замените эту строку
Код: Выделить всё
message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);
Код: Выделить всё
$error = TRUE;
if (SQL_LAYER == "mysql" || SQL_LAYER == "mysql4")
{
$sql_error = $db->sql_error($result);
if ($sql_error["code"] == 1114)
{
$result = $db->sql_query('SHOW TABLE STATUS LIKE "'.SESSIONS_TABLE.'"');
$row = $db->sql_fetchrow($result);
if ($row["Type"] == "HEAP")
{
if ($row["Rows"] > 2500)
{
$delete_order = (SQL_LAYER=="mysql4") ? " ORDER BY session_time ASC" : "";
$db->sql_query("DELETE QUICK FROM ".SESSIONS_TABLE."$delete_order LIMIT 50");
}
else
{
$db->sql_query("ALTER TABLE ".SESSIONS_TABLE." MAX_ROWS=".($row["Rows"]+50));
}
if ($db->sql_query($sql))
{
$error = FALSE;
}
}
}
}
if ($error)
{
message_die(CRITICAL_ERROR, "Error creating new session", "", __LINE__, __FILE__, $sql);
}
Теперь Вы можете не волноваться за переполнение таблицы сессий в базе данных форума phpBB.
----------------------------------------------


Есть смысл проводить данную модификацию в версиях 2.0.11 PHPbb?
Просто версия уже вроде бы достаточно надежная, с закрытыми ранее багами.
Что можете сказать по этому вопросу?
Добавлено спустя 7 минут 34 секунды:
Взято с <http://myphpbb.com.ru/?bugs>