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

Журнал - Дневник


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

  • Ответы 1k
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

При неоднократном применении слеши множатся .... каждый раз добавляются несколько при последующем сохранении шаблонов их становится все больше.

У меня не становится больше (форум 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 фирма такая-то и чем дороже баннер, тем чаще вы будете получать эту ошибку у себя на экране! :D Гарантировано 1000 показов ошибок в день. ;)

 

А слеши множатся почему-то.

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

Очень важно и срочно!!! Возможная уязвимость!!!

 

Подробности на скриншоте!

 

накрутка рейтинга

 

Я пока еще не анализировал ситуацию как и откуда растут ноги, но сам факт налицо.

 

 

Привожу кусок текста из поля 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;}

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

В файле 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;

 

 

... подправил чуток... первый раз отпостился с ошибочкой...

 

Это не совсем уязвимость... ничего кроме чисел туда подставить нельзя. Но ошибка неприятная :D

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

Спасибо за оперативность. :D

 

Пришлось правда вручную все неестественные значения рейтинга выкидывать из базы, но это было просто на раз-два и готово ;).

 

Пример небезопасной строки!

 

URL/forum/journal.php?user=9762&doset=20&voters=1&vote=3

 

user - за кого голосуем

doset - номер настройки

voters - кто голосует

vote - кол-во баллов в голосе

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

О... Еще одно... Добавить туда же:

 

if ($ibforums->input['voters'] != $ibforums->member['id'])

{

$journal->err_journal($ibforums->lang['j_err_hack']);

}

 

Вроде все. :D

 

Да... Че-то непонятно нафига я делал поле voters если под рукой всегда есть ID текущего мембера... Ступил видимо...

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

В файле post_poll.php найти в функции poll_revote:

$poll = $DB->fetch_row();

 

добавить ниже:

if (!$poll['poll_revote'])

{

$journal->err_journal($ibforums->lang['j_err_hack']);

}

 

Че-то сижу туплю, пора домой :D

Предыдущий код (в этом же посте) не рабочий ! Это для тех, кто успел его увидеть.

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

Исправление двух ошибок с рейтингом дневника и переголосованием от 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.

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

спасибо

я бы не сказал, что это уязвимости

скорее недостаточная защита от дурака

 

Ну в принципе да, скорее действительно недостаточная защита, хотя когда я увидел рейтинг более 5, то стало как-то не очень весело. :D

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

У меня вопрос :D

Ребят, а вот когда редактируешь сообщение в комментах на второй странице, то при отправке этого сообщения кидает на первую и снова надо идти на вторую. Это должно так быть? Или я накосячила чего-то?

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

У меня вопрос :D

Ребят, а вот когда редактируешь сообщение в комментах на второй странице, то при отправке этого сообщения кидает на первую и снова надо идти на вторую. Это должно так быть? Или я накосячила чего-то?

В исходном дистрибутиве так и должно быть!

 

У себя я сделал так, что при добавлении/редактировании комментария/записи ты остаешься в той же записи или том же комментарии и на той же странице где и был(а). Даже при удалении записи с любой страницы ты останешься на этой странице в том месте, где была запись или на страницу ранее в зависимости от ситуации. Так же происходит и при удалении комментариев т.е. ты остаешься в записи на нужной странице на том месте, где раньше был комментарий (даже если там передать неправильный 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'] не отделаться, но если вытащу весь код из файла, то позже напишу как есть.

 

Может быть было что-то еще, если забыл и вспомню, то напишу.

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

горю желанием сделать отправку комментов на 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){};
}}

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

replicant, спасибо.

Жаль, что у меня не получилось. После редактирования выкидывает на главную страницу дневника.

Вообще-то на главную ну никак не должно выкидывать. Видимо что-то не так сделали. Можете привести аналогичные куски из вашего кода comment_edit и post_edit?

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

У меня эти кусочки выглядят так:

 

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']);
}

 

Попробовала заменить, а оно на главную кидает. :D

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

Кто-нибудь искал причину, по которой в блоке информации ссылки нельзя добавить более 9 (если я правильно помню), ссылок?

 

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

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

Кто-нибудь искал причину, по которой в блоке информации ссылки нельзя добавить более 9 (если я правильно помню), ссылок?

в файле jsetup.js найти:

if (links_list.length > 9) return false;

вместо 9 указать свое число

в файле dosetup.php найти:

for ($i=1;$i<=9;$i++)

вместо 9 указать свое число

вроде все :D

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

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

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

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

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