Новости Joomla

Перевод и публикация интервью на греческом портале Joomla Утро, просматриваешь входящие письма и...

Перевод и публикация интервью на греческом портале Joomla 🇬🇷Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции.Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью. Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент. 🇬🇷 Интервью на греческом портале (joomla.gr)🌐 Оригинальное интервью (на английском)Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

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

vvvizard

  • Новичок
  • 5
  • 0 / 0
Разыискивая моблильный редирект на сайте, нашел такой файл в папке plugin/system/s/ s.php

Подскажите что он делает
Код
<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.logout
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('JPATH_BASE') or die;

/**
 * Plugin class for logout redirect handling.
 *
 * @since  1.6
 */
 
require_once JPATH_SITE . '/components/com_content/helpers/route.php';
class PlgSystemS extends JPlugin
{
   
    public function getUrls($uri)
    {
 
 $urls = parse_url($uri, PHP_URL_QUERY);
 $urls = str_replace('&amp;','&',$urls);
 
 
 $urls = explode('&',$urls);
 
  $r = array();
  foreach ($urls as $url)
  {
    $url = explode('=',$url);
    $var = trim($url[0]);
    $val = trim($url[1]);
    $r[$var] = $val;
   
  }   
 
  if (isset($r['id']))
  {
    $r['id'] = explode(':',$r['id']);
    $r['id'] = $r['id'][0];
   
  }
  return $r;
    }
   
  public function onAfterInitialise()
{
    if (JFactory::getApplication()->isAdmin())
{
return;
}   
       /*
         require (JPATH_SITE."/simple_html_dom.php");
         
         $db=JFactory::getDBO();
         $q = 'SELECT * FROM   `#__content`   ORDER BY id';
          $db->setQuery($q);
         $rows = $db->LoadObjectList();
          if ($rows)
          foreach ($rows as $row){
       
         
     
          $html = new simple_html_dom();
          $html->load($row->introtext);
         
          $link = array();
          if (count($html->find('a'))>0){
          foreach($html->find('a') as $e)
          {
            $lin = $e->href;
            $r= $this->getUrls($lin);
            if (isset($r['option']))
            if ($r['option']==='com_content')
            {
              $link[] =  $lin;
            }
           
           
          }
         
 
         
           if (count($link)>0){
             
           foreach ($link as $lin)
           {
            $lin = str_replace('http://kogtedralka.ru/','',$lin);
             $s= str_replace('http://kogtedralka.ru/','',$s);
           
              $r= $this->getUrls($lin);
         
             if  (isset($r['Itemid'])) {
  $l = '';
 if (isset($r['option']) && isset($r['view']) && isset($r['id']) ){
 $l = 'index.php?option='.$r['option'].'&view='.$r['view'].'&id='.$r['id'];

  $db=JFactory::getDBO();
  $q = 'SELECT * FROM #__menu WHERE link="'.$l.'"';
   $db->setQuery($q);
  $row1 = $db->LoadObject();
           
          if ($row1){
         $link_new =  $row1->link."&Itemid=".$row1->id;
         $row->introtext= str_replace("Itemid=".$r['Itemid'],"Itemid=".$row1->id,$row->introtext);
         
       
             }
             
             }
           }
         
           }//foreach
   
        $db=JFactory::getDBO();
         $q = 'UPDATE #__content SET `introtext`="'.$db->escape($row->introtext).'" WHERE id='.$row->id;
         $db->setQuery($q);
         $db->Query();
          }
          }
         
       
         
           }*/
       
 $uri = $defuri = $_SERVER['REQUEST_URI'];
 
 $r= $this->getUrls($uri);
 
 
 
 if  (isset($r['Itemid']) && isset($r['option'])) {
 $l = '';
 
 if  ($r['option']==='com_joomgallery' && (int)$r['Itemid']!=236 )
 {  $defuri = str_replace('Itemid=106','Itemid=236',$defuri);
    $defuri = str_replace('Itemid=659','Itemid=236',$defuri);
    $defuri = str_replace('/index.php','index.php',$defuri);
   
   
     if ($defuri==='index.php?option=com_joomgallery&view=category&catid=3&Itemid=236')
     {
        $links =JURI::root().'gallery';
     }
    else
    $links = JRoute::_($defuri);
   
   
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: ".$links);
    exit;
 }
 
 
 if (($r['option']==='com_content') && isset($r['view']) && isset($r['id']) )
 {
 $l = 'index.php?option='.$r['option'].'&view='.$r['view'].'&id='.$r['id'];

  $db=JFactory::getDBO();
  $q = 'SELECT * FROM #__menu WHERE link="'.$l.'"';
  $db->setQuery($q);
  $row = $db->LoadObject();
 
 
  $q = 'SELECT * FROM #__content WHERE id="'.$r['id'].'"';
  $db->setQuery($q);
  $item = $db->LoadObject();
 
if ($row)
{
    if ($row->id!= $r['Itemid'])
    {
        $links     =
         ContentHelperRoute::getArticleRoute($item->id.":".$item->alias, $item->catid, $item->language);

        $link = JRoute::_($links);
         
      header("HTTP/1.1 301 Moved Permanently");
      header("Location: ".$link);
        exit;
    }
}
}

 }

 
 

 
 if ((strpos($_SERVER['REQUEST_URI'], 'viewforum')===false)
 &&  (strpos($_SERVER['REQUEST_URI'], 'viewtopic')===false))
 {
 
 }
 else
 {
 
    $f = JRequest::getVar('f');
    $t = JRequest::getVar('t');
    $app = JFactory::getApplication();
    $db=JFactory::getDBO();
   
    $cat = $top  = 0;
    if ($f) {
     
     $q = 'SELECT id FROM #__kunena_categories WHERE import_id='.(int)$f;
         $db->setQuery($q); 
         $cat = $db->LoadResult();
         
         if ($f==7 || $f==8)
         $cat = 10;
         
         }
         
    if ($t) {
      $q = 'SELECT id FROM #__kunena_topics WHERE import_id='.(int)$t;
         $db->setQuery($q);
         $top = $db->LoadResult();
    }
   
    if ($cat && $top)
    {
       
$link =JRoute::_('index.php?option=com_kunena&view=topic&catid='.$cat.'&id='.$top.'&Itemid=255');
   header("HTTP/1.1 301 Moved Permanently");
 // header("Location: ".$link);
   $app->redirect($link); 
   return;
    }
    elseif ($cat && !$top)
    {
       
       
   $link =JRoute::_('index.php?option=com_kunena&view=category&catid='.$cat.'&Itemid=255');
   header("HTTP/1.1 301 Moved Permanently");
 // header("Location: ".$link);
   $app->redirect($link); 
   return;
    }
    else
    {
    $link =JRoute::_('index.php?option=com_kunena&Itemid=255');
 header("HTTP/1.1 301 Moved Permanently");
  header("Location: ".$link);
   //$app->redirect($link);
   exit;       
    }
 }
 
     
   
}

public function __construct(&$subject, $config)
{
parent::__construct($subject, $config);


}

 

   
   
 }



И еще такой в папке administrator\components\com_kunena\tables  d.php
Код
<?php
/*
 *  webalan.ru ;
 */
defined('_JEXEC') or die('Restricted access');

jimport('joomla.filter.input');

class Tabled extends JTable
{
function __construct(& $db) {
parent::__construct('#__kunena_messages_text', 'mesid', $db);
}
   
   
   

}
?>
« Последнее редактирование: 10.01.2018, 13:54:51 от vvvizard »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
первый как раз содержит редиректы, но судя по коду он написан специально под вас. когтедралка - это ваш сайт?

второй - на первый взгляд обычная табличка от форума Kunena, только очень непонятно что там в шапке делает левая ссылка... откуда вы устанавливали компонент форума?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

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

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Какой то кастылестроитель-велосипедист
Подозреваю, что ссылка во втором плагине - как раз на автора и ведёт
*

vvvizard

  • Новичок
  • 5
  • 0 / 0
 
первый как раз содержит редиректы, но судя по коду он написан специально под вас. когтедралка - это ваш сайт?
Когтедралка сайт заказчика, произвожу на нем ряд работ, и в том числе попросили мобильным редиректом занться.  Я так и подумал впринципе, что это и есть редирект ))
« Последнее редактирование: 10.01.2018, 14:35:42 от vvvizard »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
в том числе попросили мобильным редиректом занться
мобильный редирект - о чем идет речь, о вирусе?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

vvvizard

  • Новичок
  • 5
  • 0 / 0
мобильный редирект - о чем идет речь, о вирусе?
При входе на сайт (точнее на какие то страницы и лишь иногда) с мобильного происходит редирект. На что очень ругается Яндекс, основные проблемы были найдены в файле шаблона в js файлах, и дальше стал проверять все файлы сайта,  нашел выше приведенные очень подозрительные.
*

vvvizard

  • Новичок
  • 5
  • 0 / 0
Интересует что именно делает этот файл  и откуда берет ссылки для редиректа:
Код
<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  System.logout
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('JPATH_BASE') or die;

/**
 * Plugin class for logout redirect handling.
 *
 * @since  1.6
 */
 
require_once JPATH_SITE . '/components/com_content/helpers/route.php';
class PlgSystemS extends JPlugin
{
   
    public function getUrls($uri)
    {
 
 $urls = parse_url($uri, PHP_URL_QUERY);
 $urls = str_replace('&amp;','&',$urls);
 
 
 $urls = explode('&',$urls);
 
  $r = array();
  foreach ($urls as $url)
  {
    $url = explode('=',$url);
    $var = trim($url[0]);
    $val = trim($url[1]);
    $r[$var] = $val;
   
  }   
 
  if (isset($r['id']))
  {
    $r['id'] = explode(':',$r['id']);
    $r['id'] = $r['id'][0];
   
  }
  return $r;
    }
   
  public function onAfterInitialise()
{
    if (JFactory::getApplication()->isAdmin())
{
return;
}   
       /*
         require (JPATH_SITE."/simple_html_dom.php");
         
         $db=JFactory::getDBO();
         $q = 'SELECT * FROM   `#__content`   ORDER BY id';
          $db->setQuery($q);
         $rows = $db->LoadObjectList();
          if ($rows)
          foreach ($rows as $row){
       
         
     
          $html = new simple_html_dom();
          $html->load($row->introtext);
         
          $link = array();
          if (count($html->find('a'))>0){
          foreach($html->find('a') as $e)
          {
            $lin = $e->href;
            $r= $this->getUrls($lin);
            if (isset($r['option']))
            if ($r['option']==='com_content')
            {
              $link[] =  $lin;
            }
           
           
          }
         
 
         
           if (count($link)>0){
             
           foreach ($link as $lin)
           {
            $lin = str_replace('http://kogtedralka.ru/','',$lin);
             $s= str_replace('http://kogtedralka.ru/','',$s);
           
              $r= $this->getUrls($lin);
         
             if  (isset($r['Itemid'])) {
  $l = '';
 if (isset($r['option']) && isset($r['view']) && isset($r['id']) ){
 $l = 'index.php?option='.$r['option'].'&view='.$r['view'].'&id='.$r['id'];

  $db=JFactory::getDBO();
  $q = 'SELECT * FROM #__menu WHERE link="'.$l.'"';
   $db->setQuery($q);
  $row1 = $db->LoadObject();
           
          if ($row1){
         $link_new =  $row1->link."&Itemid=".$row1->id;
         $row->introtext= str_replace("Itemid=".$r['Itemid'],"Itemid=".$row1->id,$row->introtext);
         
       
             }
             
             }
           }
         
           }//foreach
   
        $db=JFactory::getDBO();
         $q = 'UPDATE #__content SET `introtext`="'.$db->escape($row->introtext).'" WHERE id='.$row->id;
         $db->setQuery($q);
         $db->Query();
          }
          }
         
       
         
           }*/
       
 $uri = $defuri = $_SERVER['REQUEST_URI'];
 
 $r= $this->getUrls($uri);
 
 
 
 if  (isset($r['Itemid']) && isset($r['option'])) {
 $l = '';
 
 if  ($r['option']==='com_joomgallery' && (int)$r['Itemid']!=236 )
 {  $defuri = str_replace('Itemid=106','Itemid=236',$defuri);
    $defuri = str_replace('Itemid=659','Itemid=236',$defuri);
    $defuri = str_replace('/index.php','index.php',$defuri);
   
   
     if ($defuri==='index.php?option=com_joomgallery&view=category&catid=3&Itemid=236')
     {
        $links =JURI::root().'gallery';
     }
    else
    $links = JRoute::_($defuri);
   
   
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: ".$links);
    exit;
 }
 
 
 if (($r['option']==='com_content') && isset($r['view']) && isset($r['id']) )
 {
 $l = 'index.php?option='.$r['option'].'&view='.$r['view'].'&id='.$r['id'];

  $db=JFactory::getDBO();
  $q = 'SELECT * FROM #__menu WHERE link="'.$l.'"';
  $db->setQuery($q);
  $row = $db->LoadObject();
 
 
  $q = 'SELECT * FROM #__content WHERE id="'.$r['id'].'"';
  $db->setQuery($q);
  $item = $db->LoadObject();
 
if ($row)
{
    if ($row->id!= $r['Itemid'])
    {
        $links     =
         ContentHelperRoute::getArticleRoute($item->id.":".$item->alias, $item->catid, $item->language);

        $link = JRoute::_($links);
         
      header("HTTP/1.1 301 Moved Permanently");
      header("Location: ".$link);
        exit;
    }
}
}

 }

 
 

 
 if ((strpos($_SERVER['REQUEST_URI'], 'viewforum')===false)
 &&  (strpos($_SERVER['REQUEST_URI'], 'viewtopic')===false))
 {
 
 }
 else
 {
 
    $f = JRequest::getVar('f');
    $t = JRequest::getVar('t');
    $app = JFactory::getApplication();
    $db=JFactory::getDBO();
   
    $cat = $top  = 0;
    if ($f) {
     
     $q = 'SELECT id FROM #__kunena_categories WHERE import_id='.(int)$f;
         $db->setQuery($q);
         $cat = $db->LoadResult();
         
         if ($f==7 || $f==8)
         $cat = 10;
         
         }
         
    if ($t) {
      $q = 'SELECT id FROM #__kunena_topics WHERE import_id='.(int)$t;
         $db->setQuery($q);
         $top = $db->LoadResult();
    }
   
    if ($cat && $top)
    {
       
$link =JRoute::_('index.php?option=com_kunena&view=topic&catid='.$cat.'&id='.$top.'&Itemid=255');
   header("HTTP/1.1 301 Moved Permanently");
 // header("Location: ".$link);
   $app->redirect($link);
   return;
    }
    elseif ($cat && !$top)
    {
       
       
   $link =JRoute::_('index.php?option=com_kunena&view=category&catid='.$cat.'&Itemid=255');
   header("HTTP/1.1 301 Moved Permanently");
 // header("Location: ".$link);
   $app->redirect($link);
   return;
    }
    else
    {
    $link =JRoute::_('index.php?option=com_kunena&Itemid=255');
 header("HTTP/1.1 301 Moved Permanently");
  header("Location: ".$link);
   //$app->redirect($link);
   exit;       
    }
 }
 
     
   
}

public function __construct(&$subject, $config)
{
parent::__construct($subject, $config);


}

 

   
   
 }
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
, нашел такой файл в папке plugin/system/s/ s.php

Подскажите что он делает
Это вирус- удалить.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
я так не думаю
Я тоже. Просто идеи непонятные, названия файлов странные и сам код написан через одно место.
Интересует что именно делает этот файл  и откуда берет ссылки для редиректа:
Примерно так: он делает перенаправления ссылок компонентов com_content, com_joomgallery, com_kunena на определенные пунткы меню, меняя при этом Itemid и проверяя параметры f, t(!? :o) и другие значения view.
« Последнее редактирование: 10.01.2018, 17:45:55 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Примерно так
угу. и еще меняет абсолютные http ссылки на относительные. может был переезд на https, или типа такого. но идеи, в частности с этими параметрами, реально непонятные...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
* @copyright
Для меня достаточно при решении об удалении файла + не в том месте+ имя .
Ну а желающие покопаться, могут проверить id с БД, в которых неизвестно что может быть .
п.с.
Ну явно видно что код в файле замаскирован под файл Джумла, что является одним из приемов хакеров.
« Последнее редактирование: 10.01.2018, 19:41:45 от draff »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
та чего сразу замаскирован то? :) скопировали просто существующий и отредактировали. код то перед вами, вы ж видите что он делает и что это на вирус ну никак не похоже. ну назвали переменные однобуквенно, ну код читать тяжело - но это ж не повод удалять то сразу :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
вы ж видите что он делает и что это на вирус ну никак не похоже
А что нужно подпись Hacked ?
Еще раз посмотрите в блок вверху, редактор съел мою цитату
Код
* [member=126442]copyright[/member]  Copyright (C) 200

*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а что там смотреть? обычная практика у некоторых разработчиков.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
А что нужно подпись Hacked ?
Еще раз посмотрите в блок вверху, редактор съел мою цитату
Код
* [member=126442]copyright[/member]  Copyright (C) 200


Это форум сделал автозамену на обращение по нику.
*

wishlight

  • Гуру
  • 5072
  • 319 / 1
  • От 300 руб быстрый хостинг. Сервера.
Может у него спросить
Цитировать
webalan.ru
?
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Ну а желающие покопаться, могут проверить id с БД, в которых неизвестно что может быть
Кстати, очень дельный совет. Действительно, а что там в контенте страниц, на которые редиректит?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ну явно видно что код в файле замаскирован под файл Joomla, что является одним из приемов хакеров.
Что значит "видно"? Код же перед вами.
Даже такой некомпетентный в вирусной теме, как я, никогда бы не оформил свой зловредный код в плагин. А код - творение ученика начальной школы, которое только и делает, что перенаправляет на внутренние ссылки с явными Itemid и обязательными option, view, catid без каких-либо task. При этом перенаправление делается то header, то $app->redirect, то вообще всеми способами вместе.
Файл удалить можно, но никакой это не вирус.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Файл удалить можно, но никакой это не вирус.
так и есть. кстати, наконец то добрался до монитора и открыл код в редакторе. судя по закомментированному куску кода это был еще какой то плагин, уже измененный. а потом его еще раз поменяли. но плагин писался конкретно под этот сайт, и никакой это не вирус однозначно.

но важный момент - в коде есть уязвимость sql инъекции. плагин надо как минимум отключить.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Что значит "видно"? Код же перед вами.
Ну кто переходит на личность, не имеет аргументов для подтверждения своей позиции, и типично для троллей .
Даже такой некомпетентный в вирусной теме, как я, никогда бы не оформил свой зловредный код в плагин
Откуда Вам известно что это плагин ? ТС не выложил файл .xml этого плагина и не написал что это установлено как плагин.
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
@package     Joomla.Plugin
Цитировать
@package     Joomla.Plugin
Цитировать
class PlgSystemS extends JPlugin
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Я этот файл находил, после известной многим уязвимости сессий, в папке /cache .
Это ведь тоже файл подписан как Joomla .
https://malware.expert/malware/cache-db-php/
А кто помнит сколько было сообщений про троян в модуле AutsonSlideShow .
А про мой уровень- один раз добавили найденный мною скрипт в базу айболита.
« Последнее редактирование: 11.01.2018, 10:15:42 от draff »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ну кто переходит на личность, не имеет аргументов для подтверждения своей позиции, и типично для троллей .
Не понял, поясните.
Это ведь тоже файл подписан как Joomla .
Так код надо читать, если есть такая возможность, а не только судить по каким-то отдельным признакам, и все станет ясно.
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 3 не пускает в админку (просто перезагружается страница) (гуглил, нашёл решение, не помогло)

Автор lifelover2b

Ответов: 11
Просмотров: 4886
Последний ответ 05.06.2025, 04:48:29
от andrey222
Антивирус нашел вредоносный код в двух файлах сайта polyfill

Автор buto

Ответов: 4
Просмотров: 1252
Последний ответ 19.10.2024, 10:56:55
от wishlight
Какие расширения с Telegram Вы хотели бы установить на своем сайте?

Автор rkron

Ответов: 6
Просмотров: 1845
Последний ответ 07.09.2023, 11:55:45
от GTOnidzuka
Что за баннер на сайте

Автор Lewon15

Ответов: 3
Просмотров: 1227
Последний ответ 21.06.2023, 23:26:06
от sivers
Не работает 301 редирект

Автор NatFree

Ответов: 2
Просмотров: 933
Последний ответ 28.04.2023, 11:15:08
от fsv