Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Важное с Sysman.Ru: Обход проверки прав при просмотре результатов поиска

Song:

Симтомы: Поиск по форуму делается в два этапа.

1-ый: непосредственно выборка из базы данных и кеширование результатов в специальную таблицу

2-ой: просмотр результатов поиска

Это делается для уменьшения нагрузки на движок форума при просмотре результатов.

 

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

 

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

  • 1.х
  • 2.1.х
  • 2.2.х

Рекомендованные сообщения

Song:

Симтомы: Поиск по форуму делается в два этапа.

1-ый: непосредственно выборка из базы данных и кеширование результатов в специальную таблицу

2-ой: просмотр найденного по закешированным результатам

Это делается для уменьшения нагрузки на движок форума при просмотре результатов.

 

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

 

Ниже представлены исправления для следующих версий форума:

  • 1.х (чуть ниже)
  • 2.1.х

Song: Исправление для 1.х:

 

Добавить выделенную часть:

Цитата (Search.php)
[color=#048284]$DB[/color]->query("SELECT t.*, f.id [b]as[/b] forum_id, f.name [b]as[/b] forum_name, f.read_perms                             FROM ibf_topics t, ibf_forums f                             WHERE t.tid IN([color=navy]0[/color]{[color=#048284]$topics[/color]}-[color=navy]1[/color]) [b]and[/b] f.id=t.forum_id                             ORDER BY t.pinned DESC, ".$this->sort_key." ".$this->sort_order."                            LIMIT ".$this->first.",[color=navy]25[/color]");

 

[color=#048284]$DB[/color]->query("SELECT t.*, f.id [b]as[/b] forum_id, f.name [b]as[/b] forum_name, f.read_perms                             FROM ibf_topics t                             LEFT JOIN ibf_forums f ON (f.id=t.forum_id)                             WHERE t.tid IN([color=navy]0[/color]{[color=#048284]$topics[/color]}[color=navy]0[/color])                             ORDER BY t.pinned DESC, t.".$this->sort_key." ".$this->sort_order."                            LIMIT ".$this->first.",[color=navy]25[/color]");

 

Цитата (Search.php)
                [color=#048284]$DB[/color]->query("SELECT t.*, p.pid, p.author_id, p.author_name, p.post_date, p.post, f.id [b]as[/b] forum_id, f.name [b]as[/b] forum_name, f.read_perms                             FROM ibf_topics t                              LEFT JOIN ibf_posts p ON (t.tid=p.topic_id [b]AND[/b] p.new_topic=[color=navy]1[/color])                              LEFT JOIN ibf_forums f ON (f.id=t.forum_id)                            WHERE t.tid IN([color=navy]0[/color]{[color=#048284]$topics[/color]}-[color=navy]1[/color])                            ORDER BY p.post_date DESC                            LIMIT ".$this->first.",[color=navy]25[/color]");

 

Цитата
$DB->query("SELECT t.*, p.pid, p.author_id, p.author_name, p.post_date, p.post, f.id as forum_id, f.name as forum_name, f.use_html{b}, f.read_perms{/b}, g.g_dohtml

FROM ibf_posts p

LEFT JOIN ibf_topics t ON (t.tid=p.topic_id)

LEFT JOIN ibf_forums f ON (f.id=p.forum_id)

LEFT JOIN ibf_members m ON (m.id=p.author_id)

LEFT JOIN ibf_groups g ON (m.mgroup=g.g_id)

WHERE p.pid IN(0{$posts}0)

ORDER BY p.post_date DESC

LIMIT ".$this->first.",25");

 

Найти:

Цитата (Search.php)
            [color=green]//--------------------------------------------[/color]                        [b]if[/b] ( [color=#048284]$DB[/color]->get_num_rows() )            {                [b]while[/b] ( [color=#048284]$row[/color] = [color=#048284]$DB[/color]->fetch_row() )                {                    [color=#048284]$row[/color]['keywords'] = [color=#048284]$url_words[/color];                    [color=#048284]$this[/color]->output .= [color=#048284]$this[/color]->html->RenderRow( [color=#048284]$this[/color]->parse_entry([color=#048284]$row[/color]) );                                }            }

Заменить на:

            [b]if[/b] ( [color=#048284]$DB[/color]->get_num_rows() )            {                [b]while[/b] ( [color=#048284]$row[/color] = [color=#048284]$DB[/color]->fetch_row() )                {                    [b]if[/b] ( [color=#048284]$std[/color]->check_perms([color=#048284]$row[/color]['read_perms']) != FALSE )                    {                        [color=#048284]$row[/color]['keywords'] = [color=#048284]$url_words[/color];                        [color=#048284]$this[/color]->output .= [color=#048284]$this[/color]->html->RenderRow( [color=#048284]$this[/color]->parse_entry([color=#048284]$row[/color]) );                    }                }            }

 

Найти:

Цитата (Search.php)
            [b]while[/b] ( [color=#048284]$row[/color] = [color=#048284]$DB[/color]->fetch_row() )            {                [color=#048284]$row[/color]['keywords']  = [color=#048284]$url_words[/color];                [color=#048284]$row[/color]['post_date'] = [color=#048284]$std[/color]->get_date( [color=#048284]$row[/color]['post_date'],'LONG' );

Добавить после:

                [b]if[/b] ( [color=#048284]$std[/color]->check_perms([color=#048284]$row[/color]['read_perms']) != TRUE )                {                    continue;                }

Song: Исправление для 1.х:

 

Добавить выделенную жёлтым часть в запросах ниже:

Цитата (Search.php)
[color=#048284]$DB[/color]->query("SELECT t.*, f.id [b]as[/b] forum_id, f.name [b]as[/b] forum_name, f.read_perms                             FROM ibf_topics t, ibf_forums f                             WHERE t.tid IN([color=navy]0[/color]{[color=#048284]$topics[/color]}-[color=navy]1[/color]) [b]and[/b] f.id=t.forum_id                             ORDER BY t.pinned DESC, ".$this->sort_key." ".$this->sort_order."                            LIMIT ".$this->first.",[color=navy]25[/color]");

 

Цитата (Search.php)
[color=#048284]$DB[/color]->query("SELECT t.*, f.id [b]as[/b] forum_id, f.name [b]as[/b] forum_name, f.read_perms                             FROM ibf_topics t                             LEFT JOIN ibf_forums f ON (f.id=t.forum_id)                             WHERE t.tid IN([color=navy]0[/color]{[color=#048284]$topics[/color]}[color=navy]0[/color])                             ORDER BY t.pinned DESC, t.".$this->sort_key." ".$this->sort_order."                            LIMIT ".$this->first.",[color=navy]25[/color]");

 

Цитата (Search.php)
                [color=#048284]$DB[/color]->query("SELECT t.*, p.pid, p.author_id, p.author_name, p.post_date, p.post, f.id [b]as[/b] forum_id, f.name [b]as[/b] forum_name, f.read_perms                             FROM ibf_topics t                              LEFT JOIN ibf_posts p ON (t.tid=p.topic_id [b]AND[/b] p.new_topic=[color=navy]1[/color])                              LEFT JOIN ibf_forums f ON (f.id=t.forum_id)                            WHERE t.tid IN([color=navy]0[/color]{[color=#048284]$topics[/color]}-[color=navy]1[/color])                            ORDER BY p.post_date DESC                            LIMIT ".$this->first.",[color=navy]25[/color]");

 

Цитата (Search.php)
                [color=#048284]$DB[/color]->query("SELECT t.*, p.pid, p.author_id, p.author_name, p.post_date, p.post, f.id [b]as[/b] forum_id, f.name [b]as[/b] forum_name, f.use_html, f.read_perms, g.g_dohtml                            FROM ibf_posts p                              LEFT JOIN ibf_topics t ON (t.tid=p.topic_id)                              LEFT JOIN ibf_forums f ON (f.id=p.forum_id)                              LEFT JOIN ibf_members m ON (m.id=p.author_id)                              LEFT JOIN ibf_groups g ON (m.mgroup=g.g_id)                            WHERE p.pid IN([color=navy]0[/color]{[color=#048284]$posts[/color]}[color=navy]0[/color])                            ORDER BY p.post_date DESC                            LIMIT ".$this->first.",[color=navy]25[/color]");

 

Найти:

Цитата (Search.php)
            [b]if[/b] ( [color=#048284]$DB[/color]->get_num_rows() )            {                [b]while[/b] ( [color=#048284]$row[/color] = [color=#048284]$DB[/color]->fetch_row() )                {                    [color=#048284]$row[/color]['keywords'] = [color=#048284]$url_words[/color];                    [color=#048284]$this[/color]->output .= [color=#048284]$this[/color]->html->RenderRow( [color=#048284]$this[/color]->parse_entry([color=#048284]$row[/color]) );                                }            }

Заменить на:

            [b]if[/b] ( [color=#048284]$DB[/color]->get_num_rows() )            {                [b]while[/b] ( [color=#048284]$row[/color] = [color=#048284]$DB[/color]->fetch_row() )                {                    [b]if[/b] ( [color=#048284]$std[/color]->check_perms([color=#048284]$row[/color]['read_perms']) != FALSE )                    {                        [color=#048284]$row[/color]['keywords'] = [color=#048284]$url_words[/color];                        [color=#048284]$this[/color]->output .= [color=#048284]$this[/color]->html->RenderRow( [color=#048284]$this[/color]->parse_entry([color=#048284]$row[/color]) );                    }                }            }

 

Найти:

Цитата (Search.php)
            [b]while[/b] ( [color=#048284]$row[/color] = [color=#048284]$DB[/color]->fetch_row() )            {                [color=#048284]$row[/color]['keywords']  = [color=#048284]$url_words[/color];                [color=#048284]$row[/color]['post_date'] = [color=#048284]$std[/color]->get_date( [color=#048284]$row[/color]['post_date'],'LONG' );

Добавить после:

                [b]if[/b] ( [color=#048284]$std[/color]->check_perms([color=#048284]$row[/color]['read_perms']) != TRUE )                {                    continue;                }

Song: Исправление для 2.1.х:

 

Найти:

Цитата (Search.php)
            [color=green]//-----------------------------------------[/color]            [color=green]// PRINT: Any returned rows?[/color]            [color=green]//-----------------------------------------[/color]                        [b]if[/b] ( [color=#048284]$this[/color]->ipsclass->DB->get_num_rows() )            {                [b]while[/b] ( [color=#048284]$row[/color] = [color=#048284]$this[/color]->ipsclass->DB->fetch_row() )                {

Добавить после:

                    [b]if[/b] ( [color=#048284]$this[/color]->ipsclass->check_perms( [color=#048284]$this[/color]->ipsclass->forums->forum_by_id[ [color=#048284]$row[/color]['forum_id'] ]['read_perms'] ) != TRUE )                    {                        continue;                    }

 

Найти:

Цитата (Search.php)
            [b]while[/b] ( [color=#048284]$row[/color] = [color=#048284]$this[/color]->ipsclass->DB->fetch_row() )            {                [color=#048284]$row[/color]['keywords']  = [color=#048284]$url_words[/color];                [color=#048284]$row[/color]['post_date'] = [color=#048284]$this[/color]->ipsclass->get_date( [color=#048284]$row[/color]['post_date'],'LONG' );

Добавить после:

                [b]if[/b] ( [color=#048284]$this[/color]->ipsclass->check_perms( [color=#048284]$this[/color]->ipsclass->forums->forum_by_id[ [color=#048284]$row[/color]['forum_id'] ]['read_perms'] ) != TRUE )                {                    continue;                }
  • 4 недели спустя...

Song_Bot: [MOD]Данная статья является информационной и не предназначена для обсуждения. Обсуждение статьи производится в этой теме на форуме: " Обход проверки прав при просмотре результатов поиска ". Тема создаётся автоматически при первом ответе, направляемом в эту статью, в предназначенном для обсуждения разделе. Все дальнейшие ответы в эту статью также будут направляться туда, поэтому реакцию на Ваш ответ также ищите там.[/MOD]

Гость
Эта тема закрыта для дальнейших сообщений.

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.