Новости Joomla

‼️👩‍💻 Релиз безопасности Astroid 3.3.11 - шаблона-конструктора для Joomla.

‼️👩‍💻 Релиз безопасности Astroid 3.3.11 - шаблона-конструктора для Joomla.

14 часов назад (на момент публикации заметки) была обнаружена уязвимость в популярном шаблоне-конструкторе Astroid Framework. При атаке на сайт устанавливается бэкдор — системный плагин под названием plg_system_blpayload. Если вы обнаружили этот плагин на своем веб-сайте, значит, он скомпрометирован, и вам необходимо восстановить чистую резервную копию, созданную до установки плагина.

Уязвимость позволяет загружать файлы на сайт и в дальнейшем получить права администратора Joomla.
В рамках атаки (из-за которой и была обнаружена уязвимость) на сайт устанавливался плагин plg_system_blpayload, который при каждой загрузке страницы снаружи он скрытно связывается с (платформой для SEO, работающей на черном рынке (ссылку помещать не будем, просим поверить на слово). Получает список скрытых спам-ссылок (сайты азартных игр, фишинга, мошенничества), подобранный под ваш домен, затем внедряет эти ссылки в HTML-код вашей страницы непосредственно перед рендером - невидимые для посетителей, но полностью читаемые поисковыми роботами. Это называется "отравление SEO" ("отрпавление поисковой выдачи").

Однако, эта уязвимость может использоваться в других целях. Поэтому необходимо срочно проверить ваши сайты, где стоит Astroid Framework и обновить его до версии не ниже 3.3.11. Релиз безопасности выпущен 4 часа назад (на момент написания заметки).

Скачать релиз безопасности Astroid

@joomlafeed

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

IvanTopor

  • Новичок
  • 7
  • 0 / 0
Пара вопросов, не могу найти адекватных ответов в Google.

1. Как по-умному стоит получать шаблон для использования со sprintf?

  Я получаю по-идиотски:
    $SpoilerTemplate = file_get_contents('./plugins/content/bootstrap_spoilers/template.php');

2. Как умные люди передают переменные в функцию? Мне нужно подтянуть шаблон в переменную и объявить инкрементируемое $id нулем.

  У меня вот такой код, который работает на голом php:

      $text = preg_replace_callback(
         '#\{spoiler=([^\}]+)\}(.+?)\{/spoiler\}#m',
         function ($matches){
            global $id;
            global $SpoilerTemplate;
            ++$id;
            $Spoiler = sprintf($SpoilerTemplate, 'spoiler'.$id, $matches[1], 'spoiler'.$id, $matches[2]);
            return $Spoiler;
         },
         $text);

global $var; работало в голом php, здесь нет. Это моветон, да?

Спасибо за внимание. :)
« Последнее редактирование: 26.02.2016, 13:58:53 от IvanTopor »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не уверен, что точно понимаю ваши вопросы, но могу посоветовать использовать буфер и сессию.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

IvanTopor

  • Новичок
  • 7
  • 0 / 0
Я подтягивал global'ом в функцию, которая вызывается callback'ом переменные, необходимые для работы функции (шаблон HTML блока, инкрементирующийся id для создания уникального ID).

В Joomla видимо использование global'а для получения переменной считается моветоном.

Вот я и сижу думаю, как мне не в каждой итерации (preg_replace_callback вызывает функцию каждый раз, когда находит то что я попросил) догружать шаблон из соседнего php файла в переменную для последующей работы с ней с помощью sprintf (заполнения плейсхолдеров заголовком, телом и ID).

Пока не получается передать эти переменные аргументом при запуске функции.

И пока еще не удается понять, почему в Joomla другие функции запускаются подобным образом:

  $this->function(),

Посмотрел буфер и сессию, это скорее не то, чем то. Но тоже интересный материал. Спасибо.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
И пока еще не удается понять, почему в Joomla другие функции запускаются подобным образом:
  $this->function(),
Так вы не знакомы с ООП?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

IvanTopor

  • Новичок
  • 7
  • 0 / 0
В общем не знаю, корректно или нет, решил использовать вот так:

Будет в каждой итерации (при нахождении каждого спойлера) брать шаблон из файла. crazy!
Ужс. Но как нормально передать переменную в эту функцию колбэка я не выяснил.

   protected function makeSpoiler(&$text, &$params)
   {   
      $text = preg_replace_callback(
         '#\{spoiler=([^\}]+)\}(.+?)\{/spoiler\}#m',
         function ($matches){
            $SpoilerTemplate = file_get_contents('./plugins/content/bootstrap_spoilers/template.php');
            ++$id;
            $Spoiler = sprintf($SpoilerTemplate, 'spoiler'.$id, $matches[1], 'spoiler'.$id, $matches[2]);
            return $Spoiler;
         },
         $text);
      
      return true;
      
   }


Так вы не знакомы с ООП?

Детально нет, очень смутно - да.
« Последнее редактирование: 26.02.2016, 15:37:32 от IvanTopor »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Спойлер
[свернуть]
Подправил.
« Последнее редактирование: 26.02.2016, 19:24:08 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

IvanTopor

  • Новичок
  • 7
  • 0 / 0
Т.е. такой подход (использование буфера сессии для использования переменной в другой функции) рекомендован при создании простых плагинов обрабокти контента для Joomla?

Эхх. Еще немного непонятных действий с абстрактными объектами.

Буду изучать наверное, спасибо.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод отладочной информации системного плагина

Автор effrit

Ответов: 23
Просмотров: 1928
Последний ответ 02.10.2018, 10:24:46
от effrit
Объясните как работает MVC Override с помощью плагина Joomla!

Автор kens1n

Ответов: 8
Просмотров: 2196
Последний ответ 09.10.2016, 11:00:25
от robert
Нужна помощь в написании плагина

Автор makslm

Ответов: 16
Просмотров: 1423
Последний ответ 06.10.2016, 15:48:06
от makslm
[Решено] Создание контент плагина

Автор IvanTopor

Ответов: 4
Просмотров: 1969
Последний ответ 26.02.2016, 13:10:37
от IvanTopor
Настройка удобного окружения для разработки расширений Joomla

Автор zaboich

Ответов: 7
Просмотров: 2505
Последний ответ 14.08.2015, 16:45:14
от zomby6888