• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Хак FxField [DLE 10.2 - 10.x]

Статус
В этой теме нельзя размещать новые ответы.

Gameer

Постоялец
Регистрация
25 Апр 2014
Сообщения
187
Реакции
118
fixxf.png
После некоторых манипуляций, я достиг повышения точности поиска новостей по доп полям.

Установка :
Ищем в файлах /engine/modules/show.short.php, /engine/modules/show.custom.php и два раза /engine/modules/show.full.php
PHP:
$value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
Заменяем на:
PHP:
$value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . $preg_safe_name . "/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
Далее открываем файл /engine/engine.php находим :
PHP:
"xfsearch/"
Меняем на :
PHP:
"xfsearch/" . urlencode($xn) . "/"
Далее находим :
PHP:
$xf = @$db->safesql
Выше вставляем :
PHP:
$xn = @$db->safesql ( htmlspecialchars ( strip_tags ( stripslashes ( trim ( $_GET['xn'] ) ) ), ENT_QUOTES, $config['charset'] ) );
Далее находим :
PHP:
xfields LIKE '%{$xf}%'
Меняем на :
PHP:
SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$xn}|', -1 ) ,  '||', 1 ) LIKE '%$xf%'
Далее открыть .htaccess (там где index.php) найти :
PHP:
RewriteRule ^xfsearch/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
RewriteRule ^xfsearch/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
И заменить на :
PHP:
RewriteRule ^xfsearch/([^/]*)/([^/]*)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2 [L]
RewriteRule ^xfsearch/([^/]*)/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2&cstart=$3 [L]

На этом все.
 
Последнее редактирование:
Это также удаляет xfsearch в ссылках... Где результат вживую можно посмотреть?
 
Это также удаляет xfsearch в ссылках... Где результат вживую можно посмотреть?
Лично проверял на DLE 10.5 на локале. Проблема была в том что раньше в DLE искало по всем значениям в xfields а теперь только в том что ищем.

Можете протестировать на локале, создать два разных доп поля, к примеру (год начала 2015 год окончания 2016 а в другой новости год начала 2016 а окончания 2017 (или 2015) ) и увидите что ищет только по том полю что перешли, а до этого взяло бы две новости по 2016 году ибо там и там есть это значение.
 
Опробую конечно еще раз, на faq писал , не работало у меня, поиск по категориям и доп полям ломался.
 
Вам уязвимостей чтоль мало?
PHP:
{$_GET['xn']}
За одну эту строчку руки оторвать! Кто $_GET пихает в запросы??? И мне реально пофиг что там ещё делается с ним...

$_GET/$_POST должны проходить либо через intval(), либо через mysql_real_escape_string() и никоем образом ещё...

Пока мне кто-нибудь не докажет, что строчка ниже безопасна для выполнения на SQL - тему удалить!
Код:
$sql_select = "SELECT SQL_CALC_FOUND_ROWS p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$_GET['xn']}|', -1 ) ,  '||', 1 ) LIKE '%$xf%' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
 
И да и нет. Код поправил.
 
И да и нет. Код поправил.
Скрытое содержимое доступно для зарегистрированных пользователей!

прежде чем что либо делать,обратись на php.net и функциям оптимизации.а уязвимость не убрал,что уж там
 
прежде чем что либо делать,обратись на php.net и функциям оптимизации.а уязвимость не убрал,что уж там
Ой,ой. Хорошо, побежал изучать.

Это не мой запрос с SQL_CALC_FOUND_ROWS, я его лишь дополняю, это пишите к разработчикам CMS.
 
Вооот.. Теперь можно обсуждать скорость работы и прочее...
На самом деле, можно было бы обойтись $db->safesql - этого уже достаточно для безопасной вставки в SELECT, но тут лучше перебдетть...
 
Только у меня при таком коде в htaccess слетают категории? Кто-нибудь вообще код проверял?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху