Повышение безопасности в PHPbb

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 20 лет 5 месяцев

Повышение безопасности в PHPbb

Сообщение YarNET »

Guru, нужна ваша консультация по поводу следующих модификаций:

Баг в 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);
3. после неё вставьте:

Код: Выделить всё

$topic_id = intval($topic_id); 
5. сохраните файл viewtopic.php и скопируйте на сервер, записав поверх существующего.
Данная тема также обсуждалась на <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); 
}
5. сохраните файл и скопируйте на сервер, записав поверх существующего.
Теперь Вы можете не волноваться за переполнение таблицы сессий в базе данных форума phpBB.


----------------------------------------------
:arrow: :?:
Есть смысл проводить данную модификацию в версиях 2.0.11 PHPbb?
Просто версия уже вроде бы достаточно надежная, с закрытыми ранее багами.
Что можете сказать по этому вопросу?


Добавлено спустя 7 минут 34 секунды:

Взято с <http://myphpbb.com.ru/?bugs>
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

Это инфа устарела.
В 2.0.11 все это пофиксено.
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 20 лет 5 месяцев

Сообщение YarNET »

Jovani, тем не менее, в 2.0.11 нет ничего похожего на это, да и на сайте, где расположены данные материалы написано 2.0.x
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

YarNET
Предлагаю посмотреть на даты написания статей и сразу станет ясно, к каким версиям могут относиться проблемы.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

YarNET
Скажу только, что таблицу сессий, из HEAP в MyISAM переделали еще кажись в 2.0.6 :)
Этим потеряли в скорости, но избавились от переполнения.

Добавлено спустя 5 минут 7 секунд:

Кстати, это был первый баг, с которым я столкнулся в phpBB :)
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 20 лет 5 месяцев

Сообщение YarNET »

Предлагаю посмотреть на даты написания статей и сразу станет ясно
Логично, ты как всегда прав :)
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 21 год
Откуда: Estonia, Tallinn

Сообщение Vladson »

А между тем могу сказать что тема далеко не лишняя, надо только искать решение не тех проблем которые уже решены, а тех которые уникальны...
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
kleopatrachka

Сообщение kleopatrachka »

Так редактировать файл viewtopc.php ?
Версия форума phpBB 2.0.11
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 21 год
Откуда: Estonia, Tallinn

Сообщение Vladson »

kleopatrachka
Нет
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Стаж: 19 лет 2 месяца

Сообщение Nemo1987 »

Будите удивлены, но я сталкнулся с переполднением на 2.0.21 версии!!!!
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5429
Стаж: 20 лет 3 месяца
Откуда: Питер
Благодарил (а): 177 раз
Поблагодарили: 749 раз

Сообщение Siava »

Nemo1987
Покажи пример.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Стаж: 19 лет 2 месяца

Сообщение Nemo1987 »

Siava писал(а):Покажи пример
К сожелению уже не могу :(( Почистил БД через май админ

Вернуться в «Поддержка модов для phpBB 2.0.x»