Новости Joomla

Совет по Joomla: $db->getQuery(true) стал устаревшим

Совет по Joomla: $db->getQuery(true) стал устаревшим

👩‍💻 Совет по Joomla: $db->getQuery(true) стал устаревшим.Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода

getQuery(). Если передавался параметр
$new =
true, то получали новый запрос. Если без - последний.

use Joomla\CMS\Factory;$db = Factory::getContainer()->get('DatabaseDriver');$query = $db->getQuery(new: true);// и строим запрос
Под капот Joomla 4 вошёл Joomla Framework (PHP фреймворк а-ля Laravel, Yii и т.д.), а для Joomla 5 он обновился - версия 3.4.1 вышла 6 октября 2023г. В методе фреймворка есть примечание о том, что параметр
$new, который передавался в метод
getQuery() помечен как устаревший и будет удалён в версии фреймворка 4.0.
The parameter $new is deprecated and will be removed in 4.0, use %s::createQuery() instead.В Joomla 4 версия Joomla Framework была 2.x., в Joomla 5 - 3.x. Поэтому есть предположение, что с выходом Joomla 6 обновится и версия фреймворка - станет 4.0. Поэтому для получения объекта для новых запросов следует использовать метод
createQuery(). Он уже представлен в ядре и широко используется. При этом метод
getQuery() останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.
@joomlafeed#joomla #php #разработка

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 1717 Просмотров
*

ast

  • Захожу иногда
  • 81
  • 6 / 0
Всем привет!

Столкнулся с тем, что взломщики ходят подбирать пароли к админке толпами. Так как использую шаред хостинг, то особо тех поддержку не подёргаешь по поводу изменения конфига. По совету саппорта решил поставить jsecurelite. Поставил. По большому счёту это то, что нужно. Программа работает в двух вариантах: либо при входе запрашивает пароль, либо пароль надо указать в адресной строке для входа в админку. То есть, если пароль pwd, то в админку надо входить так: /administrator/index.php?pwd
Каждый раз вводить дважды логин пароль (один в jsecurelite, а второй в админку) мне не очень понравилось, а вот использовать пароль в адресной строке было неплохо.
Единственный нюанс, который меня не устроил, это то, что код jsecurelite устроен таким образом, чтобы вход в админку происходил только в виде  /administrator/index.php?pwd
То есть все мои закладки в браузере на разные разделы сайта вида /administrator/index.php?option=com_content и /administrator/index.php?option=com_virtuemart перестали работать. Даже, если их видоизменить до /administrator/index.php?pwd&option=com_content то плагин jsecurelite не принимает пароль. Поэтому я немного доработал код jsecurelite, чтобы он принимал пароль внутри таких развёрнутых ссылок.
Теперь я поправил все свои закладки в браузере таким образом: /administrator/index.php?pwd&option=com_content и это работает.
Если вдруг вам нужно также, то нужно отредактировать файл /www/plugins/system/jsecurelite/jsecurelite/jsecurelite.class.php
Найдите функцию checkUrlKey и замените на следующий вариант:
Код
function checkUrlKey($JSecureliteConfig){

if((preg_match("/administrator\/*index.?\.php$/i", $_SERVER['PHP_SELF']))) {
$qstrs = explode("&",$_SERVER['QUERY_STRING'],10);
foreach ($qstrs as $q) {
if ($JSecureliteConfig->key == md5(base64_encode($q))) return true;
}
$my =& JFactory::getUser();
if(!$my->id && $JSecureliteConfig->key != md5(base64_encode($_SERVER['QUERY_STRING']))) {
return false;
} else {
return true;
    }
}
}
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
Re: Доп. защита админки с jsecurelite
« Ответ #1 : 16.02.2022, 13:37:25 »
Так полагаю "$JSecureliteConfig->key" - прописан в БД? т.е если, теоретически будет sql-injection, то при определённых запросах ее можно будет выдернуть из БД?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонент Жимолость - защита от спама и ботов

Автор Гоша_Компьютерный

Ответов: 7
Просмотров: 2028
Последний ответ 04.04.2025, 11:58:13
от Simply
Вместо админки пустая страница

Автор ornix

Ответов: 3
Просмотров: 868
Последний ответ 04.01.2021, 09:49:55
от ornix
IPSecure - защита сайта от ботов

Автор SeBun

Ответов: 7
Просмотров: 5776
Последний ответ 05.12.2019, 23:42:43
от SeBun
Бесплатная защита сайта от взлома, парсеров, DDoS и других кибератак

Автор Core System

Ответов: 16
Просмотров: 3045
Последний ответ 09.06.2018, 14:58:54
от Core System
легкая защита от httpflood "школьного" ddos и сканирования

Автор likrion

Ответов: 51
Просмотров: 31701
Последний ответ 27.01.2017, 14:21:10
от winstrool