Actions

J3.x

Backward compatibility in Joomla 3.4.7

This page is a translated version of a page J3.x:Backward Compatibility in Joomla 3.4.7 and the translation is 100% complete.

Other languages:
Deutsch 100% • ‎English 100% • ‎español 100% • ‎français 100% • ‎Nederlands 100%

Wat is er gewijzigd?

Vanaf versie 3.4.7 maakt Joomla gebruik van een base64-gecodeerde data container om de sessiedata in op te slaan in plaats van het als plaintext op te slaan in global $_SESSION.

Simpel gezegd, Joomla gaat van

function set($key, $value, $namespace)
{
  $_SESSION[$namespace][$key] = $value;
}

naar

function set($key, $value, $namespace)
{
  $this->data->set($namespace ... $key, $value); 
  $_SESSION[‘joomla’] = base64_encode(serialize($this->data));
}

Waarom is dit gewijzigd?

Dit was nodig om om een kritieke PHP bug heen te kunnen werken die in september 2015 bijgewerkt is. Deze bug creëert verschillende vectoraanvallen die verbonden zijn met de plaintext data, die door de gebruiker opgeslagen is, in een sessie.

Zullen mijn extensies blijven functioneren?

Er zijn 3 scenario's mogelijk:

Scenario 1 - Er wordt al gebruik gemaakt van JSession: Als dit het geval is bent u al veilig omdat de API van JSession niet gewijzigd is. De sessie-encodering is op een transparante wijze geïmplementeerd zodat er geen wijzigingen in uw code benodigd zijn.

Scenario 2 - U gebruikt $_SESSION om uw eigen specifieke extensie-data te lezen en schrijven: In dit geval zal uw extensie blijven functioneren. De nieuwe code raakt geen andere data in de globale $_SESSION aan.

Scenario 3 - U gebruikt $_SESSION om algemene data, gedeeld met Joomla of andere extensies, te lezen of schrijven: In dit geval zal uw extensie breken omdat de interne structuur van $_SESSION is gewijzigd. Een makkelijke oplossing is door $_SESSION te laten vervangen door JSession.

Advertisement