Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
tolik777

[3.3.4] Дырка позволяющая постить гостям в любой подфорум

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

В 3.3.4 у меня для некоторых подфорумов разрешено создавать и отвечать гостям. Однако некоторые индивидумы нашли способ спамить в другие подфорумы, даже если гостям не разрешено постить в них. ПОтом нашли как они это делают - прямой запрос к РНР. Подскажите, кто сталкивался с данной проблемой? Как закрыть этот баг?

Поделиться сообщением


Ссылка на сообщение

Может гдето в коде забыли проверку добавить. Покажите как выглядит прямой запрос в php

Поделиться сообщением


Ссылка на сообщение

В детали не вдавался, экспериментировал один из модераторов. По его словам можно постить в любой, даже закрытый подфорум зная только лишь ID темы, прямым запросом, что легко делается к примеру в опере. Что он собственно и продемонстрировал написав в закрытый форум, доступный только группе модераторов.

Поделиться сообщением


Ссылка на сообщение

Да, уныло там получилось. Несмотря на обилие проверок, прошляпили момент с fid, либо не предусмотрели логику в classPost: setTopicId и setTopicData.

 

Фикс http://ipbskins.ru/forum/topic12462.html#entry81858

 

И напишите багрепорт в IPS.

Поделиться сообщением


Ссылка на сообщение

В 3.4.5 такой же баг или нет?

Поделиться сообщением


Ссылка на сообщение

Как в 3.4.5 не знаю, но в 3.4.4 похоже тоже самое.

 

Решить глобально проблему можно следующим образом:

 

Открыть admin\applications\forums\sources\classes\post\classPost.php

Найти

		$topic = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'topics', 'where' => 'tid=' . $this->getTopicID() ) );

заменить на

		$topic = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'topics', 'where' => 'tid=' . $this->getTopicID() .' AND forum_id='.$this->getForumID() ) );

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

В 3.1.4 такого бага не нашёл. Проверил.

Поделиться сообщением


Ссылка на сообщение

В 3.1.4 такого бага не нашёл. Проверил.

Да, в 3.1.4 нету, ибо они добавили тупую проверку /* Fetch topic if topic ID exists */ в replySetUp.

Поделиться сообщением


Ссылка на сообщение

Как в 3.4.5 не знаю, но в 3.4.4 похоже тоже самое.

 

Исправил в 3.4.5. Подскажите правильное описание бага на русском языке для баг-трекера, собираюсь запостить на английском языке ваше решение.

Поделиться сообщением


Ссылка на сообщение

Исправил в 3.4.5.

Сделайте лучше новое исправление. Имхо, это будет продолжении логики от 3.1

Поделиться сообщением


Ссылка на сообщение

Да, я уже заметил, что правка другая. Поменял на

$topic = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'topics', 'where' => 'tid=' . $this->getTopicID() .' AND forum_id='.$this->getForumID() ) );

 

Не совсем представляю, насколько глобален этот баг. Что можно было бы написать в баг-трекере?

Поделиться сообщением


Ссылка на сообщение

Напишите, что пользователь, зная айди темы, может в ней отвечать даже закрытых для него разделах. Они поймут :)

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Главное, чтобы не взбрыкнули (они любят тянуть резину) и выпустили патч, тогда хакеры перехватят инициативу. Попробую отписать.

Поделиться сообщением


Ссылка на сообщение

Поделиться сообщением


Ссылка на сообщение

Users may post to topics they have no permission for posting to .

If forum or topic is hidden then user gets a error message.

Хм... это разве не одно и тоже? Ладно темы, но форумы разве можно запретить кроме через маски доступа?..

 

А баг не совсем критичный.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...