Infocurci - programmatore Php Roma
Infocurci - programmatore Php Roma
Questo sito non lascia nessun cookie sul vostro pc, consuma pochissimi kb, non profila nulla e non raccoglie dati personali. Siete i benvenuti.

Magento : SUPEE-6482, la patch di agosto

Dopo la mega patch SUPEE-6285, che aggiornava oltre 50 files, lo staff di Magento ha rilasciato ad inizio agosto una nuova patch, la SUPEE-6482. Aggiorna pochi files ma va installata al più presto.

Magento

Neanche il tempo di aggiornare i nostri siti con la mega patch SUPEE-6285, ed ecco che lo staff Magento ha ritenuto opportuno rilasciare un nuovo aggiornamento di sicurezza. La patch SUPEE-6482 dovrebbe essere più semplice da applicare visto che interviene su pochissimi files, che di solito non vengono sovrascritti da componenti di terze parti.

I files oggetto della patch (abbiamo preso come riferimento una versione 1.5) sono

app/code/core/Mage/Api/Model/Server/Adapter/Soap.php

dove il blocco

if( $withAuth ) {
            $phpAuthUser = $this->getController()->getRequest()->getServer('PHP_AUTH_USER', false);
            $phpAuthPw = $this->getController()->getRequest()->getServer('PHP_AUTH_PW', false);

            if ($phpAuthUser && $phpAuthPw) {
                $wsdlUrl = sprintf("http://%s:%s@%s", $phpAuthUser, $phpAuthPw, str_replace('http://', '', $wsdlUrl ) );
            }
        }

diventa

if ( $withAuth ) {
            $phpAuthUser = rawurlencode($this->getController()->getRequest()->getServer('PHP_AUTH_USER', false));
            $phpAuthPw = rawurlencode($this->getController()->getRequest()->getServer('PHP_AUTH_PW', false));
            $scheme = rawurlencode($this->getController()->getRequest()->getScheme());

            if ($phpAuthUser && $phpAuthPw) {
                $wsdlUrl = sprintf("%s://%s:%s@%s", $scheme, $phpAuthUser, $phpAuthPw,
                    str_replace($scheme . '://', '', $wsdlUrl));
            }
        }

e app/code/core/Mage/Catalog/Model/Product/Api/V2.php

dove vengono aggiunti due controlli sull'oggetto $productData per verificare che si tratti di un oggetto Php regolare. Il blocco

if (!$type || !$set || !$sku) {

diventa

if (!$type || !$set || !$sku || !is_object($productData)) {

e la funzione _prepareDataForSave inizia ora con questo blocco:

if (!is_object($productData)) {
            $this->_fault('data_invalid');
        }

per poi proseguire come di consueto con

if (property_exists($productData, 'categories') && is_array($productData->categories)) {

Queste due patch aggiungono al sito una protezione riguardo problematiche di script cross-site e comunicazione Api. Vanno aggiornate tutte le versioni Magento a partire dalla 1.4.