Перейти к публикации

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

в файлах 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;

хоть шаблоны считаются демонстрационными, но всё же ...

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

Не знаю, что будет в 13.3, но 13.2:

В файле register.php -> check_reg() емайл в 50 символов можно указать и зарегаться, но при авторизации, если auth_metod = 1, зайти не получится, т.к. там допускается всего 40.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

не баг, а так, чтобы не плодить темы...

 

в файле 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 тут смысла не имеет.

Ссылка на сообщение
Поделиться на других сайтах
  • 4 месяца спустя...

В файлах pm.php имеются запросы на получение данных из БД, одним из параметров выборки указывается $member_id['name'] не обработанный safesql (правда при сохранении данных всё же подвергается ей). С одной стороны массив member_id заполняется данными из БД и вроде как эти же данные как раз используются для запроса, но с другой стороны, в других файлах предварительно подвергается safesql и получается, что данным находящимся в данном массиве нет доверия. А если не доверия, то тогда нельзя доверять и $member_id['user_id'] который так же, порой, используется при выборке. Где в таком случае подвох?! 😎

Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, proba сказал:

А если не доверия, то тогда нельзя доверять и $member_id['user_id'] который так же, порой, используется при выборке.

структура БД такова, что там может хранится только число, экранировать число нет смысла.

Ссылка на сообщение
Поделиться на других сайтах
13 часов назад, celsoft сказал:

структура БД такова

Здесь вопросов нет.

 

Я имел ввиду, что раз в основном в запросах при выборке данных предварительно подвергается safesql(), типа мало ли что там в $member_id['name'] содержится, то почему тогда $member_id['user_id'] не подвергается, например, intval(), а используется как:

13 часов назад, celsoft сказал:

там может хранится только число

Но раз вы уверены, что там число, то почему тогда сомнение, что в $member_id['name'] может быть что-то не то и чисто для перестраховки пропускаете через safesql(). Получается, что либо в одном случае упущение, либо в другом - лишняя перестраховка.

 

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

На самом деле все намного проще. Число всегда останется числом, это факт который не изменить, а вот допустимые символы строки всегда могут поменяться. На текущий момент DLE допускает только символы в логине, которые не требуют дополнительной экранизации, но все может изменится, хотя пока и не планируется. Поэтому это такой задел на будущее, чтобы если будем менять, меньше кода подвергать изменениям. По сути задел на будущее. Код персональных сообщений, это код "волосатых годов", когда бы намного меньше думали о будущем 😀 Просто мы не переписываем код ради кода, только ради функциональности, придет время перепишем и его. Персональные сообщения давно уже требуют улучшений 😁

Ссылка на сообщение
Поделиться на других сайтах
  • 6 месяцев спустя...

Маленький нюанс: имея два доп. поля картинка и галерея со своими ограничениями, например, по размерам сторон, весу самих картинок, можно перетащить изображение из доп. поля с большими параметрами в доп. поле с меньшими и сохранить, DLE даже не матюгнётся.

Ссылка на сообщение
Поделиться на других сайтах
55 минут назад, proba сказал:

Маленький нюанс: имея два доп. поля картинка и галерея со своими ограничениями, например, по размерам сторон, весу самих картинок, можно перетащить изображение из доп. поля с большими параметрами в доп. поле с меньшими и сохранить, DLE даже не матюгнётся.

Цитата

То, что не логично - к багам не относится! Мне, например, ваша логика не логична. И что?! Спорить можем бесконечно, хотя есть раздел плагинов, где можно всё сделать при желании.

 

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

@Gameer , это бородатый баг уже, из разряда того что в DLE ДО СИХ ПОР НЕЛЬЗЯ разрешить загружать картинки и файлы ТОЛЬКО в доп. поля, и за функционалом доп. полей стоит бородатый и кривой и древний функционал загрузки картинок и файлов в тело новости, отсюда и все костыли.
Просто @celsoft не желал разработать функционал доп. полей изображений и файловых доп. полей с нуля, не связанным с настройками обычной загрузки в тело новости, и получилось это нечто, которым можно манипулировать как хочешь. Ограничения в доп поле на размеры изображений? Не проблема, грузим в тело и добавляем в POST, и вот и обошли ограничения.

В комментариях та же проблема собственно говоря, это убогая реализация загрузки файлов в тело редактора, а не в виде доп. полей.
О чём собственно даже тут на форуме высказывались, что это НЕУДОБНО и НЕЛОГИЧНО для большинства типичных пользователей сайта.

Изменено пользователем Mr. Bot
Ссылка на сообщение
Поделиться на других сайтах
  • 5 недель спустя...

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.

Ссылка на сообщение
Поделиться на других сайтах
52 минуты назад, proba сказал:

добавляя uploaded_filename, зачем-то продублировали xfvalue.

так нужно

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

файл templates.class.php, для sub_load_template в строке:

if (strpos ( $template, "category-" ) !== false) {

на stripos не исправили, хотя используется str_ireplace.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

в 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!' );

идет проверка хеша. а он что как то изменился? или юзер смог как то его подменить? 😃

Изменено пользователем crafic
Ссылка на сообщение
Поделиться на других сайтах
25.12.2020 в 15:13, crafic сказал:

идет проверка хеша. а он что как то изменился? или юзер смог как то его подменить?

А вы подумайте )) в DLE два типа регистрации. Она может сформироваться как DLE, так и придти из вне. А код проверки один.

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

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

нигде не используется.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

Начну с того, что то, что в адресной строке будет представлено не несёт под собой чего-либо на ваш взгляд, о чём могли бы подумать, это чисто для представления примера.

Допустим, было обращение по ссылке вида:

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, а это уже другая ссылка.

Ссылка на сообщение
Поделиться на других сайтах
  • 9 месяцев спустя...

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

 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Александр Л сказал:

Используется echo и die - хотя можно просто die( json_encode( [ 'error' => true, 'content' => 'banned' ] ) );

И в чем принципиальная разница? Поменять масло на масло, чтобы было масло?

 

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, Александр Л сказал:

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

Вы как то странно считаете. В вашем коде die( json_encode ... тоже две функции. То что вы написали две функции в одной строчке, а не в две строчки не делает количество вызываемых функций меньшим.

Ссылка на сообщение
Поделиться на других сайтах
  • 10 месяцев спустя...

В parse.class.php -> BB_Parse() имеются два массива $find и $replace, в которых "language-javascript" видимо внесли ошибочно, перепутав местами.

Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, proba сказал:

В parse.class.php -> BB_Parse() имеются два массива $find и $replace, в которых "language-javascript" видимо внесли ошибочно, перепутав местами.

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

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

Хорошо. Тогда в этом же файле продублирована строка:

$this->providers['%^http:\/\/mathembed.com\/latex?inputText=.*%i'] = "http://mathembed.com/oembed";

 

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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