Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Цитировать
ваша задача - максимально усложнить для злоумышленника кражу сессии

Добавил бы ещё один пункт сюда: исключение самой возможности наличия шелла в каталоге сайта. Это можно сделать весьма гибко, чтобы у пользователя остался доступ для редактирования этих файлов. Нужно запретить PHP писать в каталоги. Для кэша и динамических файлов можно проработать исключения.

Единственный вопрос -- необходимость. Если мы говорим о любительском сайте или небольшом интернет-магазине, то нафиг оно всё нужно -- не легче будет вывести транзакции в сторонний сервис? Однако в случае мало-мальски поставленного бизнеса, может, и рационально будет включить в бюджет статью расходов, связанную с безопасностью. Ведь все эти манипуляции с шифрами, изменения в файловой системе требуют периодического мониторинга и участия соответствующего специалиста.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Цитировать
Выполняется шифрование данных, данные помещаются в БД. Где то должен лежать ключ либо список ID=KEY, что бы его можно было быстро достать и декодировать данные, если, к примеру, клиент смотрит историю платежей. Тогда возникает та самая дилема, и даже две - где хранить ключи и как обезопасить скрипт, выдающий ключи, и как, в конце концов, не дать подделать выдачу ключа? Я ведь не буду требовать от каждого пользователя вставлять свой e-Token в технологическое отверстие...
ответ содержится в вопросе: именно у клиента должен быть ключ, который не обязательно должен быть на токене, можно установить в систему личный сертификат, единоразово, и проверять его наличие и актуальности, а выдавать в ЛК при регистрации ибо по запросу обновления
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Добавил бы ещё один пункт сюда: исключение самой возможности наличия шелла в каталоге сайта. Это можно сделать весьма гибко, чтобы у пользователя остался доступ для редактирования этих файлов. Нужно запретить PHP писать в каталоги. Для кэша и динамических файлов можно проработать исключения.

Такая система у меня уже есть, довожу до ума и тестирую. Как раз в прошлом году по ней создавал такую же тему, как эта, обсуждали возможность реализации. Там и WAF, и контроль запускаемых файлов, контроль появления новых файлов, контроль IP и многое другое, моя разработка. Подключается через auto_prepend в php.ini и работает незаметно. В данный  момент на моем сервере все проверки проходят за 0.003 сек, что для пользователя совершенно незаметно. И даже при наличии шелла эту систему невозможно отключить или изменить (если только не ломать сервер). То есть, теоретически, ели это мой личный бизнес, можно обойтись и без дополнительной статьи расходов, просто получая уведомления о сработках на свой мобильный, вставая в три часа ночи и выясняя, какая сволочь посмела меня разбудить... Не, видимо, вы правы, статью расходов придется предусмотреть...
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Я тоже делал подобное одному юзеру, который является фанатом J! 1.5 и не хочет изменить жизнь к лучшему :)

Суть в том, что PHP пользователь не является локальным пользователем -- это разные пользователи (но группы совпадают). Таким образом, юзер может по FTP отредактировать/удалить любой файл, а PHP может писать только там, где ему разрешили. То есть с помощью ACL для каталога кэша, например, создаётся маска 775 и соответствующие права.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Вот еще одна новость. Как думаете, приживется? Стоит ли вообще думать о внедрении поддержки физических ключей в Joomla?
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
пока что это самый безопасный способ защиты данных, для банков самое то
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Цитировать
Вот еще одна новость. Как думаете, приживется? Стоит ли вообще думать о внедрении поддержки физических ключей в Joomla?
Sebun, вы тему начали с того, что собирались шифровать данные до отправки на сервер.

USB ключи давно изобретены. Но они не шифруют данные.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Sebun, вы тему начали с того, что собирались шифровать данные до отправки на сервер.
USB ключи давно изобретены. Но они не шифруют данные.
Я прекрасно знаю, что такое USB-ключи и для чего они предназначены. Тема о безопасном хранении данных и возможных вариантах реализации.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться