Новости Joomla

Joomla 6: Автоматические обновления ядра в Joomla

Joomla 6: Автоматические обновления ядра в Joomla

👩‍💻 Joomla 6: Автоматические обновления ядра в Joomla. В октябрьском номере официального журнала Joomla - Joomla Community Magazine вышла статья David Jardin, где рассказывается о внедрении функционала автоматического обновления ядра Joomla.❓Почему сейчас? Joomla же жила как-то 20 лет без автоматических обновлений?Это оказалась самая востребованная за последнее время от пользователей Joomla функция. Но, основная причина внедрения - проблемы безопасности. Всякий раз, когда в новой версии Joomla устраняется уязвимость, злоумышленники начинают анализировать код, чтобы выяснить, какая именно уязвимость была исправлена. И как только они это выясняют - начинается разработка автоматизированных скриптов для взлома как можно большего количества сайтов. Затем доступы к автоматически взломанным сайтам продаются в профильных чатах и ресурсах "пачками" по несколько сотен тысяч или миллионов сайтов. Ваш сайт могли взломать несколько лет назад, но воспользоваться уязвимостью могут не сразу, а тогда, когда у злоумышленников возникнет необходимость. И только после этого вы может быть узнаете об этом.Анализ патча, понимание проблемы и разработка скрипта требуют времени. И если владелец сайта не обновит его до истечения этого срока, сайт может быть взломан. А хакеры действуют быстро! Для критических, легко эксплуатируемых уязвимостей речь идёт о временном окне в 10–12 часов — и этого времени явно недостаточно, чтобы все успели обновить свои сайты.Здесь выходят на первый план автоматизированные обновления: проект Joomla теперь может активно устанавливать обновления (и, следовательно, исправления безопасности) на сайты, чтобы гарантировать, что сайты действительно обновляются вовремя.🕘 От первых идей до реализации прошло 5 лет. И здесь можно вспомнить, как в Joomla 5.1 внедрили TUF - The Update Framework, позволяющий устанавливать защищённое соединение между сайтом и сервером обновлений и исключает возможность supply chain attack (атаки на цепочку поставок).Об особенностях реализации и требованиях к сайту читаем подробнее в статье на JCM.@joomlafeed#joomla #secutiry #jcm

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

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

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
Допиливаю компонент com_user по свои нужды и столкнулся с проблемой. После отправки запроса AJAXом, в классе JUser не изменяются значения, когда в БД всё прекрасно изменяется. Даже после перезагрузки страницы ничего не изменяется. В чём проблема понять не могу. Что делать то?
« Последнее редактирование: 29.08.2013, 12:06:27 от b2z »
*

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
Данные в JUser изменяются только если авторизоваться заново.
*

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
Если что, то AJAX через jQuery. МОжет ему не нравится jQuery? :D
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
bupy7 описывайте задачи подробнее, что имеем, что нужно. Будет больше шансов получить ответ
Код: php-brief
$user = JFactory::getUser(5); //получили юзера с ид 5
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Данные в JUser изменяются только если авторизоваться заново.
так вылогинтесь и залогинтесь в скрипте )
*

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
так вылогинтесь и залогинтесь в скрипте )
Да как-то не дело это. Вот например почему-то если я загружаю аватар через SWFUpload, то после вызова метода в модели, который заносит в БД адрес к аватару, всё в JUser прекрасно отображается.
bupy7 описывайте задачи подробнее, что имеем, что нужно.
Хорошо, я сейчас логов наделаю.
*

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
Задача: добавить функцию добавления и удаления аватара в профиль.

Для добавления аватара использовал SWFUpload, который для изменения данный в БД вызывает метод в models/profile.php компонента
Код
    public function setAvatar($src) {
        $user = JFactory::getUser();
        $db = &JFactory::getDBO();
       
        $query = "UPDATE `#__users` SET `avatar` = '{$src}' WHERE `username` = '{$user->username}'";
        $db->setQuery($query);
       
        return $db->query();
    }

После по надобности аватар вытаскивается из этой же модели models/profile.php через
Код
    public function getAvatar() {
        $user = JFactory::getUser();
             
        if ($user->avatar == 'none') {
            return JURI::root(). 'images/default/avatar_default.jpeg';
        }
       
        return JURI::root(). $user->avatar;
    }

Если мы просто загружаем аватар, то данные текущего пользователя после вызова
Код
$user = JFactory::getUser();
изменяются, а именно поле avatar, которое я добавил в таблицу #__users.

Так же нужно кроме добавления аватара реализовать функцию удаления аватара. Было решено сделать через AJAX, который вызывает метод удаления в controllers/profile.php

Код
    public function delete() {   
        $user = JFactory::getUser();
        if ($user->guest) {
            $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false));
            return;
        }
        if ($user->avatar == 'none') {
            return false;
        }
        $model = $this->getModel('Profile');       
        if (!$model->deleteAvatar()) {
            JError::raiseError(500, JText::_('COM_USERS_ERROR_DELETE_AVATAR'));
            return false;
        }
    }

и который вызывает метод из models/profile.php
Код
    public function deleteAvatar() {
        $user = JFactory::getUser();
        $db = &JFactory::getDBO();
       
        $query = "UPDATE `#__users` SET `avatar` = 'none' WHERE `username` = '{$user->username}'";
        $db->setQuery($query);
         
        return $db->query();
    }

А сам код AJAXа вот
Код
        $deleteAvatarAjax = '
            jQuery(window).load(function(){
                 jQuery("#profile-delete-avatar").click(function(){
             jQuery.ajax({
                type: "POST",
                url: "index.php?option=com_users&task=profile.delete",
                success: function(){
                    alert("Аватар успешно удалён");
                },
                error: function() {
                    alert("Операция завершилась с ошибкой. Попробуйте повторить позднее");
                }
             });
                 });
            });
        ';
       
        $document->addScriptDeclaration($deleteAvatarAjax);

После вызова AJAX значение в поле avatar таблицы #__users изменяется, но при получении данный текущего пользователя через JFactory::gerUser() - нет. И самое интересное, после залогивания если добавлять аватар, то в JUser данные изменяются, т.е. свойство avatar, но стоит вызвать метод удаления AJAXом, как после этого ничего не работает через полчения данный черезе JUser, но в самой БД всё прекрасно изменяется.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
1. зачем вы хакали ядро?
2. почему не вписали аватар в #__user_profiles и уже оттуда дергали ваш аватар? притом все это можно сделать через плагин!
*

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
1. зачем вы хакали ядро?
2. почему не вписали аватар в #__user_profiles и уже оттуда дергали ваш аватар? притом все это можно сделать через плагин!

1. Я ещё только начинаю вникать в Joomla и просто ставлю себе какие-то задания для выполнения. То что это можно было через плагин я в курсе =) Просто у меня такая цель познакомится с кишками. Потом переделаю в плагин
2. Т.е. если я запихаю в #__user_profile то проблема должно уйти? Что-то я не верю в это.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
1. Я ещё только начинаю вникать в Joomla и просто ставлю себе какие-то задания для выполнения. То что это можно было через плагин я в курсе =) Просто у меня такая цель познакомится с кишками. Потом переделаю в плагин
2. Т.е. если я запихаю в #__user_profile то проблема должно уйти? Что-то я не верю в это.
1. вы не туда вникаете куда нужно! вы понимаете что сделали хак ядра? и вам теперь нельзя обновляться CMS иначе все что вы сделали вместе с обновлениями затрется!
2. ну там где у вас getAvatar просто нужно сделать запрос в базу и получить значение из поля
JFactory::getUser() берется из сессии, а так как сессия записывается при авторизации то без перелогивания вы ничего не получите..
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
JFactory::getUser() берется из сессии, а так как сессия записывается при авторизации то без перелогивания вы ничего не получите..
Не совсем так - есть интересно решение:
Код: php
$user = JFactory::getUser();
$session = JFactory::getSession();
$session->set('user', new JUser($user->id));

//new data for your user after the update
$user = JFactory::getUser();

http://stackoverflow.com/questions/15028816/joomla-getuser-does-not-show-the-updated-user-data
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Не совсем так - есть интересно решение:
Код: php
$user = JFactory::getUser();
$session = JFactory::getSession();
$session->set('user', new JUser($user->id));
Ну я не говорил что нельзя перезаписать сессию ) но изначально у человека уже хакнуто ядро, и сделано так как не надо сделать! По этому не очень корректно советовать как сделать правильно там где все сделано неправильно )
*

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
1. вы не туда вникаете куда нужно! вы понимаете что сделали хак ядра? и вам теперь нельзя обновляться CMS иначе все что вы сделали вместе с обновлениями затрется!
Я в курсе всего, что произойдёт, что можно делать, а что нельзя.

Ну я не говорил что нельзя перезаписать сессию ) но изначально у человека уже хакнуто ядро, и сделано так как не надо сделать! По этому не очень корректно советовать как сделать правильно там где все сделано неправильно )
Лучше бы ты промолчал, потому что я до этого думал, что ты в чём-то шаришь, а оказалось, что просто даёшь какие-то левые советы.

b2z, то что нужно! Я раз только начал работать с Joomla ещё не в курсе всего. Вот только что-то протупил с поиском на англицком языке =) Спасибо огромное!
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Я в курсе всего, что произойдёт, что можно делать, а что нельзя.
Лучше бы ты промолчал, потому что я до этого думал, что ты в чём-то шаришь, а оказалось, что просто даёшь какие-то левые советы.
Во первых мы на ты не переходили! во вторых я советую как правильно делать! а потом многие удивляются почему на Joomla, ругаются... потому что потом приходится дорабатывать за такими "разработчиками" как вы которые, играют в вангу и пытаются по интернету определить кто шарит, а кто нет... и да я в отличии от вас шарю что вы написали редкостный быдлокод...
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
@bupy7 - отпишитесь, получилось или нет?

Ко всем - завязываем переходит на личности. Благодарю.
*

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
Во первых мы на ты не переходили! во вторых я советую как правильно делать! а потом многие удивляются почему на Joomla, ругаются... потому что потом приходится дорабатывать за такими "разработчиками" как вы которые, играют в вангу и пытаются по интернету определить кто шарит, а кто нет... и да я в отличии от вас шарю что вы написали редкостный быдлокод...
Воу-воу, палехче, паринь!
Я думаю, что ты тоже когда родился не сразу побежал и кушать стал самостоятельно.
Во-первых, без ошибок и без быдлокода никто ничему не научится. Включая меня.
Во-вторых, я чётко выразил свою позицию по данному поводу, а именно в Hook ядра com_users. Сейчас, на данном этапе, я хочу разобраться как устроено всё изнутри. Как это работает и как добиться "гармонии". К тому же это очень развивает, т.к. ты читаешь чужой код и вникаешь в него.
В-третьих, я завершил работу над добавлением функции добавления аватара в com_users. Хорошо почитал чужой код. Понял, ка кон работает изнутри. Что взаимодействует с чем. И теперь мне будет легче написать свой с 0, делаю при этом меньше ошибок.
В-четвёртых, то что ты сказал, что нужно было плагин писать - это верно и ни кто не спорит. Но глупо писать, что если сейчас человек делает не верно, то пускай у него будет всё по "феншую", что уж теперь. Раз одну плитку в ванной косо приклеили, то можно теперь и остальные.
В-пятых, мне всё равно на твой уровень вледения Joomla, если тебе сказать нечего или ты решил понтанутся перед форумчанами, что тут ламер какой-то хакнул компонент и давайте его закидаем помидорами - то у меня даже слов нет, как это тупо и по-детски.

P.S. Карму портить из-за того, что ты понтанулся - вообще тупо.
« Последнее редактирование: 29.08.2013, 12:02:49 от bupy7 »
*

bupy7

  • Осваиваюсь на форуме
  • 30
  • 0 / 2
b2z, конечно да! :)
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Вот только что-то протупил с поиском на англицком языке =) Спасибо огромное!
Бывает ;) Я по такому запросу искал (но я точно знал что есть ответ на stackoverflow, просто не сохранил в закладках):
https://www.google.ru/search?q=update+user+session+joomla

Решено - закрыто!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как и чем можно обращаться с запросами из Joomla к GraphQL?

Автор bmf1982

Ответов: 0
Просмотров: 927
Последний ответ 03.10.2019, 15:46:00
от bmf1982
Проблема с модулем после переноса с локалки на хостинг

Автор master-smeta

Ответов: 8
Просмотров: 2832
Последний ответ 15.11.2018, 16:34:46
от master-smeta
Обработка Get запроса главной страницей

Автор Maklay

Ответов: 7
Просмотров: 3708
Последний ответ 25.05.2018, 11:16:51
от ShaMAD
Joomla как система авторизации

Автор kav

Ответов: 23
Просмотров: 2780
Последний ответ 29.04.2018, 11:10:30
от Aleks.Denezh
Нужна помощь в доработке модуля под Joomla 3

Автор kik84

Ответов: 5
Просмотров: 2767
Последний ответ 30.01.2018, 22:40:30
от Елeна