Перейти к контенту
  • 0

Редактирование сообщений, БАГ.


DINI

Вопрос

Нашел в IPB дырку, позволяющую любому (!) зарегистрированному на форуме пользователю отредактировать любое (!!!) сообщение.

 

Этого можно добиться простой подстановкой переменных в адресную строку. Например, чтобы отредактировать первое сообщение в первом топике первого форума, зарегистрированному пользователю достаточно ввести в адресную строку http://www.someforum.ru/forums/index.php?act=Post&CODE=08&f=1&t=1&p=1&st=0. После этого сообщение можно спокойно редактировать.

 

У кого-нибудь имеются идеи, как можно залатать эту дыру?

Если такую тему уже обсуждали или уже выпустили какой-нибудь патч, закрывающий дыру, дайте, плиз, ссылку.

Ссылка на комментарий
Поделиться на других сайтах

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

  • 0

Ща испробую :D

Добавлено в [mergetime]1103456869[/mergetime]

Что то тут не работает ;)

Наверно заладили

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Christoph Schneider

В новостях говорилось о заплатке для 2.х, а я говорю про дыру в 1.3.1

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Этого можно добиться простой подстановкой переменных в адресную строку.

Фигня.

Ты получишь вот это:

У Вас нет прав редактирования этого сообщения

А то IPB-то дураки писали )

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Song

У Вас нет прав редактирования этого сообщения

По идее, должен получить это, но проверил у себя на форуме - получаю доступ к редактированию сообщения.

Проверял, естественно, на обычном аккаунте, а не на админском.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Ты получишь вот это:

если конешно не админ или модер в том форуме сообщение которого хочеш править :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Mitos

Дык я и говорю, что зашел через аккаунт обычного юзера, не модера и не админа.

Получаю доступ к редактированию. Редактирую сообщение - получаю отредактированное сообщение с надписью "Это сообщение отредактировал x", где x - мой ник, через который я зашел.

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0

DINI

твоя трабла. Где-то что-то нарушил, когда что-то ставил.

Я проверял у меня такого нет. Да и быть не могло.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

DINI

так начинай копать и отлаживать функции форума

Post.php -> post_edit_post.php

где-то здесь и есть трабла.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ок, пойду искать траблы в коде.

Только в пхп я не очень разбираюсь. Как бы еще что-нибудь не натворить :D .

Добавлено в [mergetime]1103477464[/mergetime]

Song

Все, разобрался... Короче, у меня в post_edit_post.php вместо строчек

 	if ($can_edit != 1)
  {
  	$std->Error( array( LEVEL => 1, MSG => 'not_op') );
  }

стояла строчка

if($this->orig_post['g_access_cp'] && !$ibforums->member['g_access_cp'] && $this->orig_post['author_id'] != $ibforums->member['id']) $can_edit = 0;

Т.е. даже если редактировать было нельзя, ошибки не выдавалось. Вот так... Пришлось добавлять отсутствующие строки.

Добавлено в [mergetime]1103477616[/mergetime]

Да, переименуйте, плиз, тему во-чтонибудь типа "Отключилась функция проверки", чтобы народ не пугался при виде такого страшного названия ;)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

ага, ну вот вроде и я наступил на какие-то грабли

 

наступил давно, разобраться решил сейчас

 

g_append_edit у нас отвечае за вывод формочки типа Добавить надпсь отредактировано вроде ? или непосредственно за повление надписи Отредактировал такой-то ?

 

вообщем грабли в том что надпись Отредактировал не появляеться поскольку

 

if ( ($row['append_edit'] == 1) and ($row['edit_time'] != "") and ($row['edit_name'] != "") )

 

в Topics.php, append_edit получаеться всегда НЕ равен единице

 

добавлено

 

не знаю, но в сорцах отродясь отсутсвовало в post_edit_post конгстсгукция

 

$this->post['append_edit'] = 1;

 

if ($ibforums->member['g_append_edit'])

{

if ($ibforums->input['add_edit'] != 1)

{

$this->post['append_edit'] = 0;

}

}

Ссылка на комментарий
Поделиться на других сайтах

  • 0
g_append_edit у нас отвечае за вывод формочки типа Добавить надпсь отредактировано вроде ? или непосредственно за повление надписи Отредактировал такой-то ?

g_append_edit показывает может ли текущий юзер убирать надпись "отредактировано" в случае, если пост отредактирован.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.