Еve Опубликовано 7 Января 2006 Жалоба Поделиться Опубликовано 7 Января 2006 $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); } Ссылка на комментарий Поделиться на других сайтах Прочее
Anna Опубликовано 7 Января 2006 Жалоба Поделиться Опубликовано 7 Января 2006 Последний вариант более корректный. Ссылка на комментарий Поделиться на других сайтах Прочее
SAT Опубликовано 7 Января 2006 Жалоба Поделиться Опубликовано 7 Января 2006 для отображения последних пяти тем в UCPкорректней юзать думается:$topic_array = array_slice( $std->clean_int_array( array_keys( $topics ) ), 0, 5 ); Ссылка на комментарий Поделиться на других сайтах Прочее
IBResource Опубликовано 7 Января 2006 Жалоба Поделиться Опубликовано 7 Января 2006 $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); } Первый вариант неофициальный, второй официальный от разработчиков. Ссылка на комментарий Поделиться на других сайтах Прочее
.silent Опубликовано 7 Января 2006 Жалоба Поделиться Опубликовано 7 Января 2006 люди, может кто дать корректный код этого обновления безопасности, м?а то все неверно, да неверно. чё писать-то надо? Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 7 Января 2006 Жалоба Поделиться Опубликовано 7 Января 2006 >> if ( !count( $array ) ) return $return; если аргумент $array будет не массив, будет ошибка интерпретации, поэтому 2-ой вариант корректен.Вопрос, может быть он не массив, уже не ко мне. Ссылка на комментарий Поделиться на других сайтах Прочее
SAT Опубликовано 7 Января 2006 Жалоба Поделиться Опубликовано 7 Января 2006 если аргумент $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; } Ссылка на комментарий Поделиться на других сайтах Прочее
Milse Опубликовано 15 Января 2006 Жалоба Поделиться Опубликовано 15 Января 2006 Я поступил аналогично, и ошибка исчезла. (версия 2.04) Ссылка на комментарий Поделиться на других сайтах Прочее
Гость Saenzer Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Извините, всю тему не читал, но хочу задать простой вопрос: почему нельзя просто скачать новый дистрибутив и заменить необходимый файл, чтобы залатать дыру? Зачем искать фрагменты текстов и их заменять? Это сделано специально для пользователей, которым закрыт доступ к клиентской арии? Ссылка на комментарий Поделиться на других сайтах Прочее
Dr.Freddy Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Вы же клиент! У вас должны быть такая возможность в клиентской зоне. Дистрибутивы там обновляются на предмет закрытия дырок безопастности, насколько я знаю. Ссылка на комментарий Поделиться на других сайтах Прочее
Гость Saenzer Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Вы же клиент! У вас должны быть такая возможность в клиентской зоне. Дистрибутивы там обновляются на предмет закрытия дырок безопастности, насколько я знаю. Что то не пойму. Я установил форум до того как этот баг был исправлен. Получается мне проще скачать обновленный архив дистрибутива из клиентского раздела и вытащить оттуда пофиксенный файл, который потом заменить на серваке, чем копаться в строках кода? Вроде все так? Ссылка на комментарий Поделиться на других сайтах Прочее
Dr.Freddy Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Ну... Такая возможность у вас есть, а что для вас в конечном итоге проще — решать вам. Ссылка на комментарий Поделиться на других сайтах Прочее
Anna Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 В предложенном ручно исправлении ошибка, т.к. & # 96 ; отпарсилось в посте как кавычка. Ссылка на комментарий Поделиться на других сайтах Прочее
dfc_darkman Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Извините, всю тему не читал, но хочу задать простой вопрос: почему нельзя просто скачать новый дистрибутив и заменить необходимый файл, чтобы залатать дыру? Зачем искать фрагменты текстов и их заменять? Это сделано специально для пользователей, которым закрыт доступ к клиентской арии?Это коненчно офтоп немного Но пойди поставь пару интересных модов, а когда их у тебя уже будет насчитываться штук 10 - попробуй обновить, скачав и заменив старый дистр. на новый. Ссылка на комментарий Поделиться на других сайтах Прочее
MotoDen Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Уже с неделю я слышал, что в 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 написали это по ошибке!Пройдите, пожалуйста, по ссылке и почитайте про уязвимость, а то английский начал учить не так давно.Возможно, это поможет многим! Ссылка на комментарий Поделиться на других сайтах Прочее
nafigator Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 MotoDen, ты, честно говоря, сообщениями про варез начинаешь одолевать. Это не форум поддержки варезных дистрибутивов IPB! Не путай клиентов своими догадками - они не относятся к НОРМАЛЬНОЙ версии. Ссылка на комментарий Поделиться на других сайтах Прочее
MotoDen Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 MotoDen, ты, честно говоря, сообщениями про варез начинаешь одолевать.Как? у меня всего лишь 11 постов, которые прямого отношения к варезу не имели. Они были адресованы и на легальную версию! Просто мне интересно, что закрыто в варезе, чего не закрыто в легальной, а может быть я ошибаюсь... Ссылка на комментарий Поделиться на других сайтах Прочее
nafigator Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Просто мне интересно, что закрыто в варезе, чего не закрыто в легальной, а может быть я ошибаюсь...Правильно ли я понимаю, что ты интересуешься здесь, что закрыто в варезе? Про легальную версию ответ в составе дистрибутива в клиент-центре.Ты тоже можешь туда попасть, приобретя легальную версию. Сейчас же ты сотрясаешь воздух и рискуешь получить предупреждение. Я, впрочем, тоже. А ещё куча народу сбегается в тему, думая что их форум под угрозой и нужно срочно всё залатать, а видит только наш с тобой оффтоп. Это нехорошо. Ссылка на комментарий Поделиться на других сайтах Прочее
dfc_darkman Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Вот патч последней уязвимости: Обновление безопасности в 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 ) Шо делать? Ссылка на комментарий Поделиться на других сайтах Прочее
nafigator Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Не вижу различий кроме пробелов.Меняй эти строки на рекомендуемые в заплатке. Ссылка на комментарий Поделиться на других сайтах Прочее
Vic'er Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Вот патч последней уязвимости:....помогите плз.там для 204 написано....а у меня так:....Шо делать? Вот мой ответ в клиентском разделе, Я СЧИТАЮ ПРОСТО НЕОБХОДИМЫМ ПРОДУБЛИРОВАТЬ ЕГО И ЗДЕСЬ: Похоже была допущена опечатка, которая может привести к тому, что дыра не только не закроется, а наоборот откроется во всей свое красе!!! в 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; - без пробела Ссылка на комментарий Поделиться на других сайтах Прочее
dfc_darkman Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Не вижу различий кроме пробелов.Меняй эти строки на рекомендуемые в заплатке.Ну как это?Там $txtА там $t или пофиг? Агаясноспасибо Ссылка на комментарий Поделиться на других сайтах Прочее
MotoDen Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Как-то странно получается... На оф. сайте не нашел этой заплатки, зато есть патч, закрывающий дыру, причем этот патч включен еще и в варез. Так стоит ли тогда менять код, что представлен в новостях? Заранее спасибо! Ссылка на комментарий Поделиться на других сайтах Прочее
Vic'er Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 MotoDen, Вы реально запарили со своим варезом!!! ВСЕ заплатки доступны ТОЛЬКО клиентам в клиент центре - общедоступными закладки могут стать через время, а могут и не стать. Ссылка на комментарий Поделиться на других сайтах Прочее
MotoDen Опубликовано 31 Января 2006 Жалоба Поделиться Опубликовано 31 Января 2006 Vic'er, я, конечно, все понимаю, но мне очень важно узнать: стоит ли менять код на тот, что в новостях, когда стоит официальный патч безопасности с http://www.invisionpower.com? Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения