Arhar Опубликовано 12 Июня 2007 Жалоба Поделиться Опубликовано 12 Июня 2007 наверно даошибка она и в африке ошибка Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 12 Июня 2007 Жалоба Поделиться Опубликовано 12 Июня 2007 При неоднократном применении слеши множатся .... каждый раз добавляются несколько при последующем сохранении шаблонов их становится все больше.У меня не становится больше (форум 2.0.х). Надо поковырять...То что предлагалось изменить работает только при импорте из php в базу. В сохранении не участвует. $this->users['j_bg_images'] = '';А ну у вас же измененный код... Все теперь работает как для id=0 пользователя т.е. со скином по-умолчанию!И пользователю в его дневнике если есть ошибка все отображается с дефолтным скином, а не с его настройками (доступ к дневнику есть) ? Это правильно ? Выше я несколько некорректно выразился про пользователя с id=0, но смысл примерно такой. У меня 2.0.4 форум, мне с бекграундом помогла строка $this->users['id'] = 0;, т.е. при обнаружении ошибки пользователю отдается скин так как будто пришел нулевой пользователь т.е. отдается дефолтный скин, я даже строку $this->users['j_bg_images'] = ''; не стал добавлять потому что заработало. Просто как и предлагал urisoft надо нулить id, только делать надо это было в том месте, на которое указал Arhar. В итоге по-моему даже в дневнике пользователя ошибки будут показывать с дефолтным скином ... хотя я не проверял дальше. Для меня было актуально прикрыть показ бекграунда для закрытых дневников. В свое время я давал утку на форуме, что мол ищу рекламодателей, которые согласились бы на показ своих баннеров на страницах ошибок! Типа ... наш постоянный спонсор для ошибки 404 фирма такая-то и чем дороже баннер, тем чаще вы будете получать эту ошибку у себя на экране! Гарантировано 1000 показов ошибок в день. А слеши множатся почему-то. Ссылка на комментарий Поделиться на других сайтах Прочее
unisolo Опубликовано 12 Июня 2007 Жалоба Поделиться Опубликовано 12 Июня 2007 У меня вопрос.... как при регистрации на форуме автоматом перекидывало бы на возможность завести себе Дневник! Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 12 Июня 2007 Жалоба Поделиться Опубликовано 12 Июня 2007 в стандартном наборе дневники есть по умолчанию у всех, понятия возможность завести - нет Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 Очень важно и срочно!!! Возможная уязвимость!!! Подробности на скриншоте! накрутка рейтинга Я пока еще не анализировал ситуацию как и откуда растут ноги, но сам факт налицо. Привожу кусок текста из поля j_votes таблицы members для юзера с накрученным рейтингом ... 2147483647;i:5097;i:2147483647;i:5099;i:2147483647;i:2125;i:0;i:5098;i:123456;i:5052;i:2147483647;i:66668;i:2147483647;i:17613;i:1;} Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 В файле dosetup.php найти:$votes = unserialize($journal->users['j_votes']);выше добавить:if (intval($ibforums->input['vote']) > 5) $ibforums->input['vote'] = 5;if (intval($ibforums->input['vote']) < 1) $ibforums->input['vote'] = 1; ... подправил чуток... первый раз отпостился с ошибочкой... Это не совсем уязвимость... ничего кроме чисел туда подставить нельзя. Но ошибка неприятная Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 Спасибо за оперативность. Пришлось правда вручную все неестественные значения рейтинга выкидывать из базы, но это было просто на раз-два и готово . Пример небезопасной строки! URL/forum/journal.php?user=9762&doset=20&voters=1&vote=3 user - за кого голосуемdoset - номер настройкиvoters - кто голосуетvote - кол-во баллов в голосе Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 О... Еще одно... Добавить туда же: if ($ibforums->input['voters'] != $ibforums->member['id']){ $journal->err_journal($ibforums->lang['j_err_hack']);} Вроде все. Да... Че-то непонятно нафига я делал поле voters если под рукой всегда есть ID текущего мембера... Ступил видимо... Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 Таким же способом можно переголосовать в опросе где функция переголосования закрыта!!! Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 В файле post_poll.php найти в функции poll_revote:$poll = $DB->fetch_row(); добавить ниже:if (!$poll['poll_revote']){ $journal->err_journal($ibforums->lang['j_err_hack']);} Че-то сижу туплю, пора домой Предыдущий код (в этом же посте) не рабочий ! Это для тех, кто успел его увидеть. Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 выложи плиз все фиксы упорядоченно Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 Исправление двух ошибок с рейтингом дневника и переголосованием от urisoft'a. В файле dosetup.php найти:$votes = unserialize($journal->users['j_votes']);выше добавить:if (intval($ibforums->input['vote']) > 5) $ibforums->input['vote'] = 5; if (intval($ibforums->input['vote']) < 1) $ibforums->input['vote'] = 1; if ($ibforums->input['voters'] != $ibforums->member['id']) { $journal->err_journal($ibforums->lang['j_err_hack']); } В файле post_poll.php найти в функции poll_revote:$poll = $DB->fetch_row(); добавить ниже:if (!$poll['poll_revote']) { $journal->err_journal($ibforums->lang['j_err_hack']); } Данные фиксы устраняют следующие уязвимости: URL/forum/journal.php?user=1&aid=revote&pid=235055 - дает возможность сбросить свой голос даже если переголосование запрещено на примере как можно сбросить голос юзера с номером 1 в голосовании к посту номер 235055! URL/forum/journal.php?user=9762&doset=20&voters=1&vote=300 - дает возможность поставить юзеру с номером 9762 от юзера с номером 1 рейтинг дневника 300 при максимальном допустимом 5. Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 спасибоя бы не сказал, что это уязвимостискорее недостаточная защита от дурака Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 спасибоя бы не сказал, что это уязвимостискорее недостаточная защита от дурака Ну в принципе да, скорее действительно недостаточная защита, хотя когда я увидел рейтинг более 5, то стало как-то не очень весело. Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 13 Июня 2007 Жалоба Поделиться Опубликовано 13 Июня 2007 ну не SQL инъекция же))) Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 14 Июня 2007 Жалоба Поделиться Опубликовано 14 Июня 2007 ну не SQL инъекция же))) Этого еще не хватало! Ссылка на комментарий Поделиться на других сайтах Прочее
Lera Опубликовано 15 Июня 2007 Жалоба Поделиться Опубликовано 15 Июня 2007 У меня вопрос Ребят, а вот когда редактируешь сообщение в комментах на второй странице, то при отправке этого сообщения кидает на первую и снова надо идти на вторую. Это должно так быть? Или я накосячила чего-то? Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 16 Июня 2007 Жалоба Поделиться Опубликовано 16 Июня 2007 У меня вопрос Ребят, а вот когда редактируешь сообщение в комментах на второй странице, то при отправке этого сообщения кидает на первую и снова надо идти на вторую. Это должно так быть? Или я накосячила чего-то?В исходном дистрибутиве так и должно быть! У себя я сделал так, что при добавлении/редактировании комментария/записи ты остаешься в той же записи или том же комментарии и на той же странице где и был(а). Даже при удалении записи с любой страницы ты останешься на этой странице в том месте, где была запись или на страницу ранее в зависимости от ситуации. Так же происходит и при удалении комментариев т.е. ты остаешься в записи на нужной странице на том месте, где раньше был комментарий (даже если там передать неправильный st, то ничего страшного, хотя при переходах с 3-ей на 2-ую страницу я не проверял детально, но вроде бы жалоб нет и все работает). Как оно было в исходном варианте я уже не помню, поэтому если приведенные куски кода совпадут с вашими, то извините, но что-то может и не совпасть, поэтому можете пробовать поставить несовпадающие части вместо своего кода и проверить как получится. Вот так, например, у меня выглядит строка в файле comment_edit.php // return to comments $journal->redirect_screen($ibforums->lang['j_redir_edit'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$row['pid'].'&st='.$_POST[st].'&view='.$_POST[comm]); Вот так в post_edit.php // Back to journal $journal->redirect_screen($ibforums->lang['j_redir_edit'],$journal->base_url."user=".$journal->users['id']."&view=".$_POST[pid]); Вот кусочек из comment_new.php // send to trackers if ($journal->users['j_public'] != 0) { $this->post_tracker($ibforums->input['comm'],$rpost['author_name'],$row['post_date'],$rpost['post']); } $journal->redirect_screen($ibforums->lang['j_redir_post'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$ibforums-> input['comm'].'&view='.$rpost['cid']); } } В comment_misc.php// -------------------------------- // Back to comments page // -------------------------------- $journal->redirect_screen($ibforums->lang['j_redir_del'],$journal->base_url.'user='.$journal->users['id'].'&comm='.$row['post_id'].'&st='. $_GET[st]); и еще // -------------------------------- // Make page number // -------------------------------- $st = (floor(($post['comments']-1) / $journal->users['j_comment_page']) * $journal->users['j_comment_page']); $st = ($st > 0) ? '&st='.$st : ''; // -------------------------------- // Goto last comment // -------------------------------- $journal->redirect_screen($ibforums->lang['j_redir_find'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$post['pid'].$st.'#c'.$comm['cid']); } В post_misc.php несколько сложнее, т.к. там простой добавкой ].'&st='.$_GET[st] к .'user='.$journal->users['id'] не отделаться, но если вытащу весь код из файла, то позже напишу как есть. Может быть было что-то еще, если забыл и вспомню, то напишу. Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 16 Июня 2007 Жалоба Поделиться Опубликовано 16 Июня 2007 горю желанием сделать отправку комментов на ctrl+enter у меня сделан вынос яваскрипта в файлы, так вот, в файле quick_reply.js в самом начале добавитьdocument.onkeydown=function(e){ if (e) event=e if ((event.keyCode==13)&&(event.ctrlKey)){ try{ document.REPLIER.submit.click(); }catch(e){}; }} Ссылка на комментарий Поделиться на других сайтах Прочее
Lera Опубликовано 16 Июня 2007 Жалоба Поделиться Опубликовано 16 Июня 2007 replicant, спасибо.Жаль, что у меня не получилось. После редактирования выкидывает на главную страницу дневника. Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 17 Июня 2007 Жалоба Поделиться Опубликовано 17 Июня 2007 replicant, спасибо.Жаль, что у меня не получилось. После редактирования выкидывает на главную страницу дневника.Вообще-то на главную ну никак не должно выкидывать. Видимо что-то не так сделали. Можете привести аналогичные куски из вашего кода comment_edit и post_edit? Ссылка на комментарий Поделиться на других сайтах Прочее
StRiANON Опубликовано 17 Июня 2007 Жалоба Поделиться Опубликовано 17 Июня 2007 А над разделами дневника работает кто-нить? Или над облаком тэгов? Ссылка на комментарий Поделиться на других сайтах Прочее
Lera Опубликовано 18 Июня 2007 Жалоба Поделиться Опубликовано 18 Июня 2007 У меня эти кусочки выглядят так: comment_edit.php // return to comments $journal->redirect_screen($ibforums->lang['j_redir_edit'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$row['pid']); post_edit.php // Back to journal $journal->redirect_screen($ibforums->lang['j_redir_edit'],$journal->base_url."user=".$journal->users['id']."&view=".$pid); comment_new.php // send to trackers if ($journal->users['j_public'] != 0) { $this->post_tracker($ibforums->input['comm'],$rpost['author_name'],$row['post_date'],$rpost['post']); } $journal->redirect_screen($ibforums->lang['j_redir_post'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$ibforums->input['comm'].'&view='.$rpost['cid']); } } В comment_misc.php // -------------------------------- // Back to comments page // -------------------------------- $journal->redirect_screen($ibforums->lang['j_redir_del'],$journal->base_url.'user='.$journal->users['id'].'&comm='.$row['post_id']); } // -------------------------------- // Make page number // -------------------------------- $st = (floor(($post['comments']-1) / $journal->users['j_comment_page']) * $journal->users['j_comment_page']); $st = ($st > 0) ? '&st='.$st : ''; // -------------------------------- // Goto last comment // -------------------------------- $journal->redirect_screen($ibforums->lang['j_redir_find'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$post['pid'].$st.'#c'.$comm['cid']); } Попробовала заменить, а оно на главную кидает. Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 19 Июня 2007 Жалоба Поделиться Опубликовано 19 Июня 2007 Кто-нибудь искал причину, по которой в блоке информации ссылки нельзя добавить более 9 (если я правильно помню), ссылок? Вобщем хотелось бы, чтобы лимит был побольше. Сам еще не смотрел, но думаю что причина простая. Вдруг кто-то уже решил этот вопрос. Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 19 Июня 2007 Жалоба Поделиться Опубликовано 19 Июня 2007 Кто-нибудь искал причину, по которой в блоке информации ссылки нельзя добавить более 9 (если я правильно помню), ссылок?в файле jsetup.js найти:if (links_list.length > 9) return false;вместо 9 указать свое числов файле dosetup.php найти:for ($i=1;$i<=9;$i++)вместо 9 указать свое числовроде все Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения