Новости 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 Гость просматривают эту тему.
  • 12 Ответов
  • 3024 Просмотров
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
last_insert_id
« : 06.04.2014, 17:35:17 »
Как использовать last_insert_id()  в Joomla 2.5   ?
Либо в переменную записать полученный id
либо сразу в следующий запрос подставить.
Мой сайт про корабли
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: last_insert_id
« Ответ #1 : 06.04.2014, 18:07:39 »
вопрос довольно странный, видимо это зависит от поставленной задачи)
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: last_insert_id
« Ответ #2 : 07.04.2014, 00:42:19 »
Если используете JTable то после store в поле id будет нужное вам значение
пример:
Код: php
class myTable extends JTable
{
public function __construct( $db )
{
parent::__construct( '#__table_name', 'id', $db );
}
}

$table = new myTable( JFactory::getDbo() );
$table->title = 'lalal';
$table->store();
echo $table->id; //тут и будет наш last_insert_id

Если же хотим через обычный запрос после вставки то:
Код: php
$db = JFactory::getDbo();
$db->setQuery('ЗАПРОС НА ВСТАВКУ')->execute();
echo $db->insertid();//тут и будет наш last_insert_id
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
Re: last_insert_id
« Ответ #3 : 07.04.2014, 08:01:50 »
Ой а у меня запрос н вставку не такой как во втором варианте. Так использовать?

                        
Код: php
$query = $db->getQuery(true);
$query = "INSERT INTO  `#__names`
(`id`, `title`, `user_id`)
VALUES ('', '{$wname}', '{$userid}');";
$db->setQuery( $query );
$db->query();
                        $last_id = $db->insertid();
Мой сайт про корабли
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: last_insert_id
« Ответ #4 : 07.04.2014, 11:35:55 »
Ой а у меня запрос н вставку не такой как во втором варианте. Так использовать?
Да все верно!
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
Re: last_insert_id
« Ответ #5 : 07.04.2014, 14:09:10 »
спасибо за помощь)
Мой сайт про корабли
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: last_insert_id
« Ответ #6 : 07.04.2014, 14:42:47 »
спасибо за помощь)
Кстати вот это:
Код: php
$query = $db->getQuery(true);
$query = "INSERT INTO  `#__names`
(`id`, `title`, `user_id`)
VALUES ('', '{$wname}', '{$userid}');";
Запись неверная!
$query = $db->getQuery(true); - эта строка лишняя! Она нужна если вы запрос будете строить в объектном стиле! Пример:
Код: php
$query = $db->getQuery(true);
$query->insert('#__names( `title`, `user_id`)')->values($db->quote($wname). ', ' . $db->quote($userid));
$db->setQuery( $query )->query();
$last_id = $db->insertid();
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
Re: last_insert_id
« Ответ #7 : 14.04.2014, 17:47:56 »
Огромное спасибо)) У меня эта строка встречается на всех моих сайтах(
А что она делает?
Мой сайт про корабли
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: last_insert_id
« Ответ #9 : 14.04.2014, 18:13:03 »
Огромное спасибо)) У меня эта строка встречается на всех моих сайтах(
Как и сказал Дима эта строка для получения объекта класса JDatabaseQuery! Этот класс служит для того что бы строить запросы в объектном стиле!
тоесть не так как вы написали:
Код: php
query = $db->getQuery(true);
$query = "INSERT INTO  `#__names`
(`id`, `title`, `user_id`)
VALUES ('', '{$wname}', '{$userid}');";

а так как я писал:
Код: php
$query = $db->getQuery(true);
$query->insert('#__names( `title`, `user_id`)')->values($db->quote($wname). ', ' . $db->quote($userid));
*

Mick_20

  • Завсегдатай
  • 1030
  • 13 / 0
  • Что тут писать?
Re: last_insert_id
« Ответ #10 : 14.04.2014, 18:33:10 »
Понятно) А зачем писать в объектном стиле? Защита от инъекций или??
Мой сайт про корабли
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

Beer

  • Завсегдатай
  • 1107
  • 43 / 1
  • БИРУ - БИР!
Re: last_insert_id
« Ответ #12 : 06.01.2020, 01:35:28 »
Использовал как мануал для пересчета записей в БД используя неск. проследовательных запросов создав в корне файл test.php

Код
$db->setQuery('INSERT INTO #__joomgallery_comments ( cmtpic, cmttext, published, approved ) SELECT #__joomgallery.id AS _2, #__joomgallery.hits - #__joomgallery.hits_2 AS _1, 1 AS _4, 1 AS _5 FROM #__joomgallery LEFT JOIN #__joomgallery_comments ON #__joomgallery.id = #__joomgallery_comments.cmtpic WHERE (((#__joomgallery.hits - #__joomgallery.hits_2)>0)) ORDER BY #__joomgallery.hits - #__joomgallery.hits_2 DESC LIMIT 12')->execute();

При обращении к https://сайт.ru/test.php происходит чтение и запись в БД.

Когда я выполняю несколько запросов к БД последний  запрос UPDATE не выполняется.
Но если между запросами ставлю
Код
sleep(1);
Записи в БД добавляются. Это правильное решение?

Куда положить мой файл test.php чтобы к нему сделать доступ через cron?
Если положу на уровень выше - подключение к БД сохранится?
« Последнее редактирование: 06.01.2020, 01:40:18 от Beer »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться