Перейти к контенту
  • 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 показывает может ли текущий юзер убирать надпись "отредактировано" в случае, если пост отредактирован.

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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