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

Уязвимости форумов Invision Power Board


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

		$return = array();

	if ( !count( $array ) ) return $return;

	foreach( $array as $k => $v )
	{
		$return[ intval($k) ] = intval($v);
	}

 

Или все же:

		$return = array();

	if( !is_array($array) OR count($array) < 1 )
	{
		return $return;
	}

	foreach( $array as $k => $v )
	{
		$return[ intval($k) ] = intval($v);
	}

:D

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

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

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

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

Загружено фотографий

для отображения последних пяти тем в UCP

корректней юзать думается:

$topic_array = array_slice( $std->clean_int_array( array_keys( $topics ) ), 0, 5  );

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

		$return = array();

	if ( !count( $array ) ) return $return;

	foreach( $array as $k => $v )
	{
		$return[ intval($k) ] = intval($v);
	}

 

Или все же:

		$return = array();

	if( !is_array($array) OR count($array) < 1 )
	{
		return $return;
	}

	foreach( $array as $k => $v )
	{
		$return[ intval($k) ] = intval($v);
	}

:D

 

Первый вариант неофициальный, второй официальный от разработчиков.

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

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

а то все неверно, да неверно. чё писать-то надо? :D

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

>> if ( !count( $array ) ) return $return;

 

если аргумент $array будет не массив, будет ошибка интерпретации, поэтому 2-ой вариант корректен.

Вопрос, может быть он не массив, уже не ко мне.

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

если аргумент $array будет существовать в любом виде, то условие if ( !count( $array ) ) пропустит его....

и foreach может вернуть ворнинг... я закрывал у себя на 2.0.х аналогично версиии 2.1.х:

	/*-------------------------------------------------------------------------*/
// Makes topics read or forum read cookie safe		 
/*-------------------------------------------------------------------------*/

function clean_int_array( $array=array() )
{
	$return = array();

	if ( is_array( $array ) and count( $array ) )
	{
		foreach( $array as $k => $v )
		{
			$return[ intval($k) ] = intval($v);
		}
  }

	return $return;
}

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

  • 3 недели спустя...
Извините, всю тему не читал, но хочу задать простой вопрос: почему нельзя просто скачать новый дистрибутив и заменить необходимый файл, чтобы залатать дыру? Зачем искать фрагменты текстов и их заменять? Это сделано специально для пользователей, которым закрыт доступ к клиентской арии?
Ссылка на комментарий
Поделиться на других сайтах

Вы же клиент! У вас должны быть такая возможность в клиентской зоне. Дистрибутивы там обновляются на предмет закрытия дырок безопастности, насколько я знаю.
Ссылка на комментарий
Поделиться на других сайтах

Вы же клиент! У вас должны быть такая возможность в клиентской зоне. Дистрибутивы там обновляются на предмет закрытия дырок безопастности, насколько я знаю.

 

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

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

Ну... Такая возможность у вас есть, а что для вас в конечном итоге проще — решать вам. :D
Ссылка на комментарий
Поделиться на других сайтах

Извините, всю тему не читал, но хочу задать простой вопрос: почему нельзя просто скачать новый дистрибутив и заменить необходимый файл, чтобы залатать дыру? Зачем искать фрагменты текстов и их заменять? Это сделано специально для пользователей, которым закрыт доступ к клиентской арии?

Это коненчно офтоп немного :D

Но пойди поставь пару интересных модов, а когда их у тебя уже будет насчитываться штук 10 - попробуй обновить, скачав и заменив старый дистр. на новый. ;)

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

Уже с неделю я слышал, что в IPB 2.0.x и 2.1.4 есть серьезная уязвимость.

Не так давно мне в руки попал варез 2.1.4 в readme которого нашел следующее:

This Repack Includes the Critical Security Update.

Read more about this update here...

http://forums.invisionpower.com/index.php?showtopic=204627

Теперь и в новостях встретил обновление безопасности и решил сверить коды... оказалось, что те строчки, что надо заменить были на месте... что же тогда было исправлено в форуме? Не думаю, что PyR8zdl написали это по ошибке!

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

Возможно, это поможет многим!

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

MotoDen, ты, честно говоря, сообщениями про варез начинаешь одолевать.

Это не форум поддержки варезных дистрибутивов IPB!

 

Не путай клиентов своими догадками - они не относятся к НОРМАЛЬНОЙ версии.

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

MotoDen, ты, честно говоря, сообщениями про варез начинаешь одолевать.

Как? :D у меня всего лишь 11 постов, которые прямого отношения к варезу не имели. Они были адресованы и на легальную версию!

 

Просто мне интересно, что закрыто в варезе, чего не закрыто в легальной, а может быть я ошибаюсь...

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

Просто мне интересно, что закрыто в варезе, чего не закрыто в легальной, а может быть я ошибаюсь...

Правильно ли я понимаю, что ты интересуешься здесь, что закрыто в варезе?

 

Про легальную версию ответ в составе дистрибутива в клиент-центре.

Ты тоже можешь туда попасть, приобретя легальную версию.

 

Сейчас же ты сотрясаешь воздух и рискуешь получить предупреждение. Я, впрочем, тоже. А ещё куча народу сбегается в тему, думая что их форум под угрозой и нужно срочно всё залатать, а видит только наш с тобой оффтоп. Это нехорошо.

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

Вот патч последней уязвимости:

 

Обновление безопасности в IPB 2.x.x

 

помогите плз.

там для 204 написано

 

# XSS Clean
	$txt = preg_replace( "#javascript\:#is", "java script:", $txt );
	$txt = str_replace( "`" , "`" , $txt );

 

а у меня так:

 

 # XSS Clean
			  $t = preg_replace( "#javascript\:#is", "java script:", $t );
			  $t = str_replace(  "`"			   , "`"	   , $t )

 

Шо делать? :D

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

Вот патч последней уязвимости:

....

помогите плз.

там для 204 написано

....

а у меня так:

....

Шо делать? :D

 

Вот мой ответ в клиентском разделе, Я СЧИТАЮ ПРОСТО НЕОБХОДИМЫМ ПРОДУБЛИРОВАТЬ ЕГО И ЗДЕСЬ:

 

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

 

в 2.0.4 нет кода:

 

			$txt = preg_replace( "#javascript\:#is", "java script:", $txt );
		$txt = str_replace( "`" , "& #96;" , $txt );

 

Поэтому для IPB 2.0.4 следует читать так:

 

Файл /sources/lib/post_parser.php, найти код:

 

			$t = preg_replace( "#javascript\:#is", "java script:", $t );
		$t = str_replace( "`" , "& #96;", $t );

заменить на:

			$t = preg_replace( "#javascript\:#is", "java script:", $t);
		$t = preg_replace( "#vbscript\:#is", "vb script:", $t);
		$t = str_replace( "`" , "& #96;" , $t);
		$t = preg_replace( "#moz\-binding:#is", "moz binding:", $t);

 

& #96; - без пробела

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

Не вижу различий кроме пробелов.

Меняй эти строки на рекомендуемые в заплатке.

Ну как это?

Там $txt

А там $t

 

или пофиг?

 

Ага

ясно

спасибо

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

Как-то странно получается... На оф. сайте не нашел этой заплатки, зато есть патч, закрывающий дыру, причем этот патч включен еще и в варез. Так стоит ли тогда менять код, что представлен в новостях?

Заранее спасибо!

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

MotoDen, Вы реально запарили со своим варезом!!!

 

ВСЕ заплатки доступны ТОЛЬКО клиентам в клиент центре - общедоступными закладки могут стать через время, а могут и не стать.

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

Vic'er, я, конечно, все понимаю, но мне очень важно узнать: стоит ли менять код на тот, что в новостях, когда стоит официальный патч безопасности с http://www.invisionpower.com?
Ссылка на комментарий
Поделиться на других сайтах


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

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

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