proba 57 Опубликовано: 12 сентября 2019 Рассказать Опубликовано: 12 сентября 2019 Автор в файлах thumb.class.php, mysql.php, memcache.class.php имеется строка: header ( 'Location: ../' ); в файлах frame.css шаблонов для a.progressCancel указано: background: url(../../engine/classes/uploads/swfupload/cancelbutton.gif) no-repeat -14px 0; хоть шаблоны считаются демонстрационными, но всё же ... Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 18 сентября 2019 Рассказать Опубликовано: 18 сентября 2019 Автор Не знаю, что будет в 13.3, но 13.2: В файле register.php -> check_reg() емайл в 50 символов можно указать и зарегаться, но при авторизации, если auth_metod = 1, зайти не получится, т.к. там допускается всего 40. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 28 сентября 2019 Рассказать Опубликовано: 28 сентября 2019 Автор не баг, а так, чтобы не плодить темы... в файле xfields.php есть код: switch ($xfieldsaction) { case "configure": if( ! $user_group[$member_id['user_group']]['admin_xfields'] ) { msg( "error", $lang['index_denied'], $lang['index_denied'] ); die(); } функция msg() и так использует die(). в файле default.skin.php есть такое: $sidebar= ""; ... if( count( $menu_item ) ) $sidebar= implode("", $menu_item); else $sidebar= ""; переменная sidebar изначально определили, и условие else тут смысла не имеет. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 1 февраля 2020 Рассказать Опубликовано: 1 февраля 2020 Автор В файлах pm.php имеются запросы на получение данных из БД, одним из параметров выборки указывается $member_id['name'] не обработанный safesql (правда при сохранении данных всё же подвергается ей). С одной стороны массив member_id заполняется данными из БД и вроде как эти же данные как раз используются для запроса, но с другой стороны, в других файлах предварительно подвергается safesql и получается, что данным находящимся в данном массиве нет доверия. А если не доверия, то тогда нельзя доверять и $member_id['user_id'] который так же, порой, используется при выборке. Где в таком случае подвох?! 😎 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 1 февраля 2020 Рассказать Опубликовано: 1 февраля 2020 15 минут назад, proba сказал: А если не доверия, то тогда нельзя доверять и $member_id['user_id'] который так же, порой, используется при выборке. структура БД такова, что там может хранится только число, экранировать число нет смысла. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 2 февраля 2020 Рассказать Опубликовано: 2 февраля 2020 Автор 13 часов назад, celsoft сказал: структура БД такова Здесь вопросов нет. Я имел ввиду, что раз в основном в запросах при выборке данных предварительно подвергается safesql(), типа мало ли что там в $member_id['name'] содержится, то почему тогда $member_id['user_id'] не подвергается, например, intval(), а используется как: 13 часов назад, celsoft сказал: там может хранится только число Но раз вы уверены, что там число, то почему тогда сомнение, что в $member_id['name'] может быть что-то не то и чисто для перестраховки пропускаете через safesql(). Получается, что либо в одном случае упущение, либо в другом - лишняя перестраховка. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 2 февраля 2020 Рассказать Опубликовано: 2 февраля 2020 На самом деле все намного проще. Число всегда останется числом, это факт который не изменить, а вот допустимые символы строки всегда могут поменяться. На текущий момент DLE допускает только символы в логине, которые не требуют дополнительной экранизации, но все может изменится, хотя пока и не планируется. Поэтому это такой задел на будущее, чтобы если будем менять, меньше кода подвергать изменениям. По сути задел на будущее. Код персональных сообщений, это код "волосатых годов", когда бы намного меньше думали о будущем 😀 Просто мы не переписываем код ради кода, только ради функциональности, придет время перепишем и его. Персональные сообщения давно уже требуют улучшений 😁 2 Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 14 августа 2020 Рассказать Опубликовано: 14 августа 2020 Автор Маленький нюанс: имея два доп. поля картинка и галерея со своими ограничениями, например, по размерам сторон, весу самих картинок, можно перетащить изображение из доп. поля с большими параметрами в доп. поле с меньшими и сохранить, DLE даже не матюгнётся. Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 310 Опубликовано: 14 августа 2020 Рассказать Опубликовано: 14 августа 2020 55 минут назад, proba сказал: Маленький нюанс: имея два доп. поля картинка и галерея со своими ограничениями, например, по размерам сторон, весу самих картинок, можно перетащить изображение из доп. поля с большими параметрами в доп. поле с меньшими и сохранить, DLE даже не матюгнётся. Цитата То, что не логично - к багам не относится! Мне, например, ваша логика не логична. И что?! Спорить можем бесконечно, хотя есть раздел плагинов, где можно всё сделать при желании. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 17 августа 2020 Рассказать Опубликовано: 17 августа 2020 Автор Плодить темы не хочется. Цитата Ссылка на сообщение Поделиться на других сайтах
Mr. Bot 26 Опубликовано: 17 августа 2020 Рассказать Опубликовано: 17 августа 2020 (изменено) @Gameer , это бородатый баг уже, из разряда того что в DLE ДО СИХ ПОР НЕЛЬЗЯ разрешить загружать картинки и файлы ТОЛЬКО в доп. поля, и за функционалом доп. полей стоит бородатый и кривой и древний функционал загрузки картинок и файлов в тело новости, отсюда и все костыли. Просто @celsoft не желал разработать функционал доп. полей изображений и файловых доп. полей с нуля, не связанным с настройками обычной загрузки в тело новости, и получилось это нечто, которым можно манипулировать как хочешь. Ограничения в доп поле на размеры изображений? Не проблема, грузим в тело и добавляем в POST, и вот и обошли ограничения. В комментариях та же проблема собственно говоря, это убогая реализация загрузки файлов в тело редактора, а не в виде доп. полей. О чём собственно даже тут на форуме высказывались, что это НЕУДОБНО и НЕЛОГИЧНО для большинства типичных пользователей сайта. Изменено 17 августа 2020 пользователем Mr. Bot Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 17 сентября 2020 Рассказать Опубликовано: 17 сентября 2020 Автор 14.1, файл upload.class.php, в самом низу файла имеется строка: return htmlspecialchars("{\"success\":true, \"returnbox\":\"{$return_box}\", \"uploaded_filename\":\"{$uploaded_filename}\", \"xfvalue\":\"{$xfvalue}\", \"xfvalue\":\"{$xfvalue}\", \"link\":\"{$link}\"{$flink}{$tinypng_error}}", ENT_NOQUOTES, $config['charset']); добавляя uploaded_filename, зачем-то продублировали xfvalue. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 17 сентября 2020 Рассказать Опубликовано: 17 сентября 2020 52 минуты назад, proba сказал: добавляя uploaded_filename, зачем-то продублировали xfvalue. так нужно Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 17 сентября 2020 Рассказать Опубликовано: 17 сентября 2020 Автор файл templates.class.php, для sub_load_template в строке: if (strpos ( $template, "category-" ) !== false) { на stripos не исправили, хотя используется str_ireplace. Цитата Ссылка на сообщение Поделиться на других сайтах
crafic 32 Опубликовано: 25 декабря 2020 Рассказать Опубликовано: 25 декабря 2020 (изменено) в register.php идет строка $_REQUEST['id'] = rawurlencode( base64_encode( $name . "||" . $email . "||" . $password1 . "||" . sha1( $name . $email . $stronghash . $config['key'] ) ) ); а потом ниже в коде $user_arr = explode( "||", base64_decode( @rawurldecode( trim($_REQUEST['id']) ) ) ); ....... if( sha1( $name . $email . $stronghash . $config['key'] ) != $user_arr[3] ) die( 'ID not valid!' ); идет проверка хеша. а он что как то изменился? или юзер смог как то его подменить? 😃 Изменено 25 декабря 2020 пользователем crafic Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 27 декабря 2020 Рассказать Опубликовано: 27 декабря 2020 25.12.2020 в 15:13, crafic сказал: идет проверка хеша. а он что как то изменился? или юзер смог как то его подменить? А вы подумайте )) в DLE два типа регистрации. Она может сформироваться как DLE, так и придти из вне. А код проверки один. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 23 января 2021 Рассказать Опубликовано: 23 января 2021 Автор файл /engine/init.php: имеется $PHP_SELF = $config['http_home_url'] . "index.php"; а ниже if( isSSL() AND stripos( $config['http_home_url'], 'http://' ) !== false ) { $config['http_home_url'] = str_replace( "http://", "https://", $config['http_home_url'] ); } if (substr ( $config['http_home_url'], - 1, 1 ) != '/') $config['http_home_url'] .= '/'; напрашивается перестановка мест. в файле /engine/engine.php переменная: $is_main = 0; нигде не используется. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 7 февраля 2021 Рассказать Опубликовано: 7 февраля 2021 Автор Начну с того, что то, что в адресной строке будет представлено не несёт под собой чего-либо на ваш взгляд, о чём могли бы подумать, это чисто для представления примера. Допустим, было обращение по ссылке вида: site.ru/xfsearch/blabla/echo+$$_arr['key']{5}/ в настройках при этом ЧПУ - On. в заголовке страницы, в отличие от спидбара будет: echo+$$_arr['key'{5 вырезаются только закрывающие, т.к. открывающие - преобразованы в { и [ каноническая ссылка при этом: site.ru/xfsearch/blabla/echo%2B%24%24_arr%5B%27key%27%5D%7B5%7D/ при переходе по этой канонической ссылке (или первоначальной) при активном/не активном ЧПУ всё ОК, нареканий нет. При ЧПУ - Off каноническая преобразуется как и следует, и будет выглядеть: site.ru/index.php?do=xfsearch&xfname=blabla&xf=echo%2B%24%24_arr%5B%27key%27%5D%7B5%7D Вот только, если по такой ссылке будет осуществлён запрос при включенном ЧПУ, каноническая преобразовывается в такую: site.ru/xfsearch/echo%2B%24%24_arr%5B%27key%27%5D%7B5%7D/ без учёта xfname, а это уже другая ссылка. Цитата Ссылка на сообщение Поделиться на других сайтах
Александр Л 0 Опубликовано: 29 ноября 2021 Рассказать Опубликовано: 29 ноября 2021 В файле ajax/addcomments.php if ( check_ip ( $banned_info['ip'] ) OR ($is_logged AND $member_id['banned'] == "yes") ) { echo "{\"error\":true, \"content\":\"banned\"}"; die(); } Используется echo и die - хотя можно просто die( json_encode( [ 'error' => true, 'content' => 'banned' ] ) ); И файлов с таким стилем кода очень много - их можно найти по регулярному выражению echo(.*);\s\sdie\(\); Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 29 ноября 2021 Рассказать Опубликовано: 29 ноября 2021 1 час назад, Александр Л сказал: Используется echo и die - хотя можно просто die( json_encode( [ 'error' => true, 'content' => 'banned' ] ) ); И в чем принципиальная разница? Поменять масло на масло, чтобы было масло? Цитата Ссылка на сообщение Поделиться на других сайтах
Александр Л 0 Опубликовано: 29 ноября 2021 Рассказать Опубликовано: 29 ноября 2021 Можете не менять, но использовать вызов двух функций вместо одной как минимум не логично. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 30 ноября 2021 Рассказать Опубликовано: 30 ноября 2021 10 часов назад, Александр Л сказал: Можете не менять, но использовать вызов двух функций вместо одной как минимум не логично. Вы как то странно считаете. В вашем коде die( json_encode ... тоже две функции. То что вы написали две функции в одной строчке, а не в две строчки не делает количество вызываемых функций меньшим. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 18 октября 2022 Рассказать Опубликовано: 18 октября 2022 Автор В parse.class.php -> BB_Parse() имеются два массива $find и $replace, в которых "language-javascript" видимо внесли ошибочно, перепутав местами. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 18 октября 2022 Рассказать Опубликовано: 18 октября 2022 3 минуты назад, proba сказал: В parse.class.php -> BB_Parse() имеются два массива $find и $replace, в которых "language-javascript" видимо внесли ошибочно, перепутав местами. Нет, все верно в данном вопросе, ничего не перепутано, так и должно быть. Это нужно для поддержки одной из возможностей скрипта в публикациях. Цитата Ссылка на сообщение Поделиться на других сайтах
proba 57 Опубликовано: 18 октября 2022 Рассказать Опубликовано: 18 октября 2022 Автор Хорошо. Тогда в этом же файле продублирована строка: $this->providers['%^http:\/\/mathembed.com\/latex?inputText=.*%i'] = "http://mathembed.com/oembed"; Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.