Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Вышел phpBB 2.0.8

Аватара пользователя
Mr. Anderson
phpBB Guru
phpBB Guru
Сообщения: 7522
Стаж: 20 лет 1 месяц
Откуда: СССР
Благодарил (а): 5 раз
Поблагодарили: 105 раз

Вышел phpBB 2.0.8

Сообщение Mr. Anderson »

phpBB Group рады представить релиз phpBB 2.0.8. Этот релиз был выпущен, чтобы исправить несколько потенциальных угроз безопасности. Разработчики напоминают, что продолжается работа над релизом 2.2.0 и, как и раньше, не планируется выпуск новых версий 2.0.x, за исключением обнаружения новых угроз безопасности.

Как и в предыдущих релизах, доступны три версии дистрибутива:
  • Полный пакет
    Содержит все файлы phpBB и английский языковой пакет.
  • Только измененные файлы
    Содержит только те файлы, которые были изменены со времени предыдущего релиза phpBB. Пожалуйста, учтите, что этот архив включает изменённые файлы для каждого предыдущего релиза.
  • Patch-файлы
    Содержит patch-совместимые файлы изменений с предыдущего релиза.
Выберите ту версию, которая будет наиболее удобной для вас.

Пожалуйста, удостоверьтесь, что вы прочли файлы INSTALL и README в каталоге docs перед установкой или обновлением вашего форума.

Замечание для пользователей версии 2.0.3, планирующих использовать patch-файлы

Пользователям версии 2.0.3, планирующим использовать patch-файлы, возможно потребуется запустить fix_files.sh (можно найти в каталоге contrib дистрибутива) перед выполнением patch-программы.

При обновлении форума с версии 2.0.3 наилучшим вариантом будет сначала запустить патч в режиме "dry run" - это покажет, действительно ли вам понадобится использовать fix_files.sh. Для этого примените такой параметр команды patch, как --dry-run, например patch -cl -p1 --dry-run < phpBB-2.0.3_to_2.0.8.patch. Такой запрос выполнит patch-файл, однако изменения в файлы дистрибутива вносится не будут. В случае если вы после выполнения файла увидите несчетное количество сообщений об ошибках, использовать fix_files.sh все же придется.

Для устранения этой проблемы скопируйте файл fix_files.sh в корневую директорию вашего форума, установите права доступа для него как u+x и затем выполните его при помощи команды ./fix_files.sh *. Этот скрипт заменит принятые в Windows символы перевода строк, присутствующие в коде версии 2.03. Обратите внимание, что скрипт также произведет данную операцию со всеми файлами, включая бинарные, если они находятся вне директорий files или images. На время работы скрипта следует разместить подобные файлы вне директории вашего форума.

Какие изменения произошли в данном релизе?

Исчерпывающий список изменений включен во все архивы. Эта версия направлена на исправление нескольких потенциальных угроз безопасности.
Как и в версиях 2.0.5 - 2.0.7, система защиты от флуда (визуальное подтверждение регистрации) и файлы кэширования шаблонов находятся в каталоге contrib.

Процедура обновления для пользователей версии 2.0.7a:

admin/admin_forumauth.php
Найти (строка 105):

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

         $simple_ary = $simple_auth_ary[$HTTP_POST_VARS['simpleauth']]; 

         for($i = 0; $i < count($simple_ary); $i++) 
         { 
            $sql .= ( ( $sql != '' ) ? ', ' : '' ) . $forum_auth_fields[$i] . ' = ' . $simple_ary[$i]; 
         } 

         $sql = "UPDATE " . FORUMS_TABLE . " SET $sql WHERE forum_id = $forum_id"; 
      } 
      else 
      { 
         for($i = 0; $i < count($forum_auth_fields); $i++) 
         { 
            $value = $HTTP_POST_VARS[$forum_auth_fields[$i]];
Заменить на:

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

         $simple_ary = $simple_auth_ary[intval($HTTP_POST_VARS['simpleauth'])]; 

         for($i = 0; $i < count($simple_ary); $i++) 
         { 
            $sql .= ( ( $sql != '' ) ? ', ' : '' ) . $forum_auth_fields[$i] . ' = ' . $simple_ary[$i]; 
         } 

         if (is_array($simple_ary)) 
         { 
            $sql = "UPDATE " . FORUMS_TABLE . " SET $sql WHERE forum_id = $forum_id"; 
         } 
      } 
      else 
      { 
         for($i = 0; $i < count($forum_auth_fields); $i++) 
         { 
            $value = intval($HTTP_POST_VARS[$forum_auth_fields[$i]]);
admin/admin_forums.php
Найти (строка 60):

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

   $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
После добавить:

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

   $mode = htmlspecialchars($mode);
admin/admin_groups.php
Найти (строка 55):

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

   $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
После добавить:

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

   $mode = htmlspecialchars($mode);
admin/admin_ranks.php
Найти (строка 43):

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

   $mode = ($HTTP_GET_VARS['mode']) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
После добавить:

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

   $mode = htmlspecialchars($mode);
admin/admin_smilies.php
Найти (строка 62):

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

   $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
После добавить:

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

   $mode = htmlspecialchars($mode);
Найти (строка 319):

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

         $smiley_id = ( !empty($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id'];
После добавить:

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

         $smiley_id = intval($smiley_id);
Найти (строка 340):

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

         $smiley_id = ( !empty($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id'];
После добавить:

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

         $smiley_id = intval($smiley_id);
admin/admin_styles.php
Найти (строка 61):

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

   $mode = ( isset($HTTP_GET_VARS['mode']) ) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
После добавить:

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

   $mode = htmlspecialchars($mode);
Найти (строка 492):

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

            $style_id = $HTTP_GET_VARS['style_id'];
После добавить:

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

            $style_id = intval($HTTP_GET_VARS['style_id']);
Найти (строка 707):

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

            WHERE template_name = '$template_name'";
После добавить:

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

            WHERE template_name = '" . str_replace("\'", "''", $template_name) . "'";
admin/admin_ug_auth.php
Найти (строка 60):

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

$user_id = intval($user_id); 
$group_id = intval($group_id);
После добавить:

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

$adv = intval($adv); 
$mode = htmlspecialchars($mode);
admin/admin_user_ban.php
Найти (строка 280):

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

            $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . $user_list[$i];
Заменить на:

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

            $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . intval($user_list[$i]);
Найти (строка 293):

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

            $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . $ip_list[$i];
Заменить на:

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

            $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . str_replace("\'", "''", $ip_list[$i]);
Найти (строка 306):

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

            $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . $email_list[$i];
Заменить на:

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

            $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . str_replace("\'", "''", $email_list[$i]);
admin/admin_users.php
Найти (строка 52):

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

   $mode = ( isset( $HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
После добавить:

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

   $mode = htmlspecialchars($mode);
Найти (строка 842):

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

            $category = $HTTP_POST_VARS['avatarcategory'];
Заменить на:

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

            $category = htmlspecialchars($HTTP_POST_VARS['avatarcategory']);
admin/admin_words.php
Найти (строка 44):

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

admin/admin_words.php
После добавить:

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

   $mode = htmlspecialchars($mode);
Найти (строка 67):

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

      $word_id = ( isset($HTTP_GET_VARS['id']) ) ? $HTTP_GET_VARS['id'] : 0;
Заменить на:

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

      $word_id = ( isset($HTTP_GET_VARS['id']) ) ? intval($HTTP_GET_VARS['id']) : 0;
Найти (строка 117):

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

      $word_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : 0;
Заменить на:

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

      $word_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0;
Найти (строка 154):

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

      if( isset($HTTP_POST_VARS['id']) ||  isset($HTTP_GET_VARS['id']) ) 
      { 
         $word_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id'];
После добавить:

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

         $word_id = intval($word_id);
admin/pagestart.php
Найти (строка 59):

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

   redirect($url);
Заменить на:

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

   redirect("index.$phpEx?sid=" . $userdata['session_id']);
includes/bbcode.php
Найти (строка 284):

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

   $text = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
Заменить на:

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

   $text = preg_replace("#\[img\]((ht|f)tp://)([^ \?&=\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
includes/functions_search.php
Найти (строка 201):

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

                  $value_sql .= ( ( $value_sql != '' ) ? ', ' : '' ) . '(\'' . $word[$i] . '\', 0)'; 
                  break; 
               case 'mssql':
После добавить:

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

               case 'mssql-odbc':
Найти (строка 226):

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

                  VALUES $value_sql"; 
               break; 
            case 'mssql':
После добавить:

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

            case 'mssql-odbc':
includes/usercp_register.php
Найти (строка 180):

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

   $user_avatar_local = ( isset($HTTP_POST_VARS['avatarselect']) && !empty($HTTP_POST_VARS['submitavatar']) && $board_config['allow_avatar_local'] ) ? $HTTP_POST_VARS['avatarselect'] : ( ( isset($HTTP_POST_VARS['avatarlocal'])  ) ? htmlspecialchars($HTTP_POST_VARS['avatarlocal']) : '' );
Заменить на:

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

   $user_avatar_local = ( isset($HTTP_POST_VARS['avatarselect']) && !empty($HTTP_POST_VARS['submitavatar']) && $board_config['allow_avatar_local'] ) ? htmlspecialchars($HTTP_POST_VARS['avatarselect']) : ( ( isset($HTTP_POST_VARS['avatarlocal'])  ) ? htmlspecialchars($HTTP_POST_VARS['avatarlocal']) : '' );

Вернуться в «Новости и объявления (архив)»