Joomla.it Forum
Non solo Joomla... => Sicurezza => : tomtomeight 27 May 2018, 11:37:07
-
Buongiorno
Nell'effettuare uno spostamento di un mio sito da un server ad un altro ho riscontrato in fase di scompattamento del file zip backup i seguenti errori.
File esistenti, vuoi sovrascivere?
Così ho verificato nome e percorso di questi file e ho scoperto che si trattava di due file, simili per Windows che non discerne maiuscole e minuscole, esattamente nella cartella libraries/src/Form/Field/ esistono due file FrontendLanguageField.php e FrontendlanguageField.php così come altre coppie simile varianti solo per una maiuscola e minuscola.
Mi chiedo a questo punto se sono file estranei iniettati o semplicemente nelle nuove versioni ci sia stato una rinomina di questi file.
Aggiungo che verificando detti file in una distribuzione ultima attuale, 3.8.8, esiste solo una versione di queste coppie di file e naturalmente nel passaggio terrò solo quelle ufficiali.
-
Ciao, non mi risulta che quel file sia stato rinominato: mi sembra ci sia sempre stata la versione FrontendlanguageField.php
Hai provato ad aprire l'altro e vedere che c'è dentro?
-
<?php
/**
* Joomla! Content Management System
*
* @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\CMS\Form\Field;
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Form\FormHelper;
FormHelper::loadFieldClass('list');
/**
* Provides a list of published content languages with home pages
*
* @see JFormFieldLanguage for a select list of application languages.
* @since 3.5
*/
class FrontendLanguageField extends \JFormFieldList
{
/**
* The form field type.
*
* @var string
* @since 3.5
*/
public $type = 'Frontend_Language';
/**
* Method to get the field options for frontend published content languages with homes.
*
* @return array The options the field is going to show.
*
* @since 3.5
*/
protected function getOptions()
{
// Get the database object and a new query object.
$db = Factory::getDbo();
$query = $db->getQuery(true);
$query->select('a.lang_code AS value, a.title AS text')
->from($db->quoteName('#__languages') . ' AS a')
->where('a.published = 1')
->order('a.title');
// Select the language home pages.
$query->select('l.home, l.language')
->innerJoin($db->quoteName('#__menu') . ' AS l ON l.language=a.lang_code AND l.home=1 AND l.published=1 AND l.language <> ' . $db->quote('*'))
->innerJoin($db->quoteName('#__extensions') . ' AS e ON e.element = a.lang_code')
->where('e.client_id = 0')
->where('e.enabled = 1')
->where('e.state = 0');
$db->setQuery($query);
try
{
$languages = $db->loadObjectList();
}
catch (\RuntimeException $e)
{
$languages = array();
if (Factory::getUser()->authorise('core.admin'))
{
Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
}
}
// Merge any additional options in the XML definition.
return array_merge(parent::getOptions(), $languages);
}
}
Questo è l'intruso
-
Come avrai potuto notare anche te è uguale all'originale, nessun codice aggiunto/malevolo. Del perchè sia stato con la L maiuscola rimane un'incognita... ??? PS: l'unica cosa certa è che dovrebbe derivare da una versione joomla dalla 3.8.0 alla 3.8.3 ovvero dall'introduzione della cartella src dentro la cartella libraries, fino al copyright 2017, dalla 3.8.4 dovrebbe avere copyright 2018.