Magento javítócsomagok, patch fájlok – miért fontosak?

Miről lesz szó a cikkben?

  • Mik azok a patch-ek? Milyen fajtáik vannak?
  • Miért fontosak a javítócsomagok?
  • Magento javítócsomagok és fontosságuk
  • Foltok vagy verzió frissítés?
  • Hogyan kell telepíteni Magento 1 és Magento 2 alatt a javítócsomagokat?
  • Javítócsomagok ellenőrzése
  • Telepítsük vagy ne telepítsük?
  • Konklúzió

 

Mik azok a patch-ek (foltok)?

Javítócsomagok: Egy-egy szoftver fejlesztése során gyakran előfordul, hogy a fejlesztőknek soron kívül kell módosításokat eszközölniük. Ilyenkor a szoftvefejlesztők különféle szoftver frissítések segítségével javítják a program kiadása utáni hibákat, hiányzó adatokat, biztonsági réseket, azaz a bug-okat.

 

A javítócsomagok (service packs) tartalmazzák a javított állományok teljes egészét, míg a nyílt forráskódú szoftverek esetén a foltokban (patch) csak az eltéréseket leíró állományokat teszik közzé. A Magento hivatalosan foltokat ad ki a hibák javítására.

 

 

Magento patches emblema

 

A foltok (patch-ek) előnye, hogy valóban csak a változtatásra szoruló kód sorokat módosítják, és egyszerre több, régebbi szoftver verzióval is kompatibilisek lehetnek, hátrányuk viszont, hogy némi plusz szakértelem és gyakorlat szükséges az alkalmazásukhoz.

Éppen emiatt a különbség miatt a javítócsomagok mérete nagyobb lehet, mint az eredeti alkalmazás állományaié, szemben a folttal, ami csak a különbségeket tartalmazza, melyek esetében olyan futtatható állományokról van szó, amelyek automatikusan módosítják az alkalmazás állományait.

Elengedhetetlen feltétel még, hogy a folt és a javítócsomag is csak a megadott verziójú alkalmazáshoz használható, ezt általában feltüntetik a csomag nevében és leírásában is.

 

Miért fontosak a foltok (patch-ek)?

A foltokkal és a  javítócsomagokkal elsősorban az elkészült alkalmazások hibáit, adat hiányait vagy biztonsági réseit javítjuk. Éppen ezért kiemelten fontos, hogy figyelemmel kísérjük az egyes alkalmazások újabb javítócsomagjainak megjelenését, hírlevél, RSS hírcsatorna, közösségi média vagy az alkalmazásba épített értesítő felületen (pl.: adminisztrációs oldal) keresztül. A szoftverfejlesztésben a foltok és  javítócsomagok lehetnek nem hivatalos (unofficial) forrásúak, biztonsági típusúak (security) és kiemelten fontos (hot) javítások.

magento patch folt illusztráció

tips FONTOS: Mindenképpen kötelezően ajánlott telepíteni a biztonsági javításokat, mivel ezek az alkalmazás sebezhetőségének hibáit hivatottak javítani. Ha egy biztonsági javítás megjelenik az alkalmazásunkhoz, akkor azt a lehető leggyorsabban telepíteni kell. Fontos megjegyezni, hogy ezeket a biztonsági javításokat csak megbízható (official) forrásból telepítsük, mivel csökkentenénk az alkalmazás biztonságát más forrásokból származó kártékony foltozással.

A hot (dinamikus szoftver fejlesztés) típusú javításokat az alkalmazás futása közben is telepíthetjük, mivel nem okoznak rendszer hibákat, újraindulást vagy rendszerleállást.

A nem hivatalos forrásból származó javítások, ahogy a nevük is mutatja, nem kereskedelmi javításai egy kereskedelmi alkalmazásnak, amit egy harmadik félen keresztül az eredeti fejlesztő adott ki.

 

magento patches security center biztonság

 

Milyen javítócsomagok jöttek ki és miért fontosak?

A Magento – és általában a legtöbb nagy közösséggel és felhasználói táborral rendelkező e-kereskedelmi szoftvergyártó – értesíti a felhasználóit, ha újabb frissítés vagy verzió került kiadásra. A Magento esetén hírlevél formájában a regisztrált fiókunkon keresztül, valamint az adminisztrációs felületre belépve egy figyelmeztető üzenet formájában is értesülünk ezen megjelenésekről.

 

magento patches message box magento1 üzenet

Figyelmeztető üzenetek Magento 1 adminisztrációs felületen

 

magento patches rendszer üzenet, magento2

Magento 2 adminisztrációs felületen a figyelmeztető üzenetek megjelenése

 

A Community Edition javítócsomagokat a Magento hivatalos oldaláról tölthetjük le a következő lépéseket végrehajtva:

  1. Jelentkezzünk be fiókunkkal a magentocommerce.com/download linken.
  2. Az oldal jobb felső részében kattintsunk a My Account Ha nincs még fiókunk, hozzunk egyet létre a regisztrációval – ez a lépés teljesen ingyenes.
  3. A Magento Community Edition Patches részben válasszuk ki az általunk telepíteni kívánt patch-et.
  4. A listában a patch mellett válasszuk ki a saját CE verzió
  5. Kattintsuk a Download-ra.
  6. Ha készen vagyunk a letöltéssel, következhet a telepítés.

 

Az Enterprise Edition javítócsomagokat szintén a Magento hivatalos oldaláról tölthetjük le a következő lépéseket végrehajtva:

  1. Jelentkezzünk be fiókunkkal a magentocommerce.com/download linken. Az oldal jobb felső részében kattintsunk a My Account linkre.
  2. A bal oldali panelen válasszuk a Downloads
  3. Kattintsunk a Magento Enterprise Edition szövegre a jobb oldali részben.
  4. Kattintsunk a Support Patches-re.
  5. Keressük meg a megfelelő patch-et.
  6. Kattintsunk az általunk használt megfelelő verzió számú letöltésre.
  7. Ha készen vagyunk a letöltéssel, következhet a telepítés.

 

magento patches letöltés panel, Enterprise Edition

Magento EE javítócsomagok gyűjtője

 

Folt vagy verzió frissítés?

A Magento letöltési oldalán feltünteti, hogy egy-egy szoftver verzió milyen foltot tartalmaz, így adott esetben kétféle választásunk is nyílhat a javítások alkalmazására:

  • Folt integrálása
  • A teljes verzió frissítése

 

A legfontosabb tudni, hogy az új verziók a javításokon túl egyéb új és módosított funkciókat is tartalmazhatnak, melyek – különösen nagyobb verzió ugrás esetén – „eltörhetik” a működő webáruházunkat. A biztonsági javításoknál a Magento fejlesztői arra törekednek, hogy a kódot a célnak megfelelően csak a szükséges mértékben módosítsák, így néhány kivételtől eltekintve foltozás után a webáruházunk jó eséllyel ugyanúgy fog működni, mint előtte. Ha a folt mégis visszafelé inkompatibilis hibát tartalmaz, azt a szoftverfejlesztő jelzi az adott foltnál vagy a verzió frissítésnél.

 

Hogyan kell telepíteni a javítócsomagokat Magento 1 alatt?

Mindegyik Magento verziónál adott a lehetőség, hogy a legfrissebb verziót – amely már tartalmazza a korábbi javítócsomagokat is – egyetlen állományként letöltsük a weboldalról és felülírjuk vele a már meglévő Magento verziónkat. Mivel feltételezzük, hogy a fejlesztők a szabályos moduláris kiterjesztéseket használták és a Core állományokat kiterjesztve érintetlenül hagyták, ezért ezzel nem okozhatunk problémát.

Azonban nézzük csak meg a Magento 1.9.2.4 (2016-02-23) telepítőjét: 109.4 MB, 14310 file, a 33.5MB-os ZIP állomány kitömörítése közel 1 percet vesz igénybe! Ha ezeket az állományokat fel szeretnénk másolni a szerverünkre, akkor a kapcsolat sebességétől függően akár fél óráig is eltarthat, ha közben még összehasonlítást is végzünk, akár órákra is emelkedhet ez az idő. Ez pedig közel sem ideális.

A foltok a maguk méretében kicsik (néhány kB-tól a pár száz kB-osig) és csupán a szükséges állományok megfelelő sorait cserélik ki a javított kódra. Ezek a szekvenciális állományok lépésről lépésre hajtják végre a feladatokat és végzik el a foltozást.

Ha ezt a megoldást használjuk, akkor mindenképpen figyeljünk arra, hogy a jelenlegi Magento-nk milyen verzióját használjuk és a hozzá tartozó patch fájlt futtassuk le.

 

# 9. Track patch applying result
echo "Patch was applied/reverted successfully."
ADDITIONAL_INFO=`$SED_BIN -n ""$ADDITIONAL_INFO_LINE"" "$CURRENT_DIR""$BASE_NAME"`
APPLIED_REVERTED_ON_DATE=`date -u +"%F %T UTC"`
APPLIED_REVERTED_PATCH_INFO=`echo -n "$APPLIED_REVERTED_ON_DATE"" | ""$ADDITIONAL_INFO""$REVERTED_PATCH_MARK"`
echo -e "$APPLIED_REVERTED_PATCH_INFO\n$PATCH_APPLY_REVERT_RESULT\n\n" >> "$APPLIED_PATCHES_LIST_FILE"

exit 0


SUPEE-6482 | CE_1.9.2.0 | v1 | | Tue Jul 14 14:17:04 2015 +0300 |

__PATCHFILE_FOLLOWS__
diff --git app/code/core/Mage/Api/Model/Server/Adapter/Soap.php app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
index 0f9a3fa..1ac0d57 100644
--- app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
+++ app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
@@ -233,9 +233,9 @@ class Mage_Api_Model_Server_Adapter_Soap
 : $urlModel->getUrl('*/*/*');
 
 if ( $withAuth ) {
- $phpAuthUser = $this->getController()->getRequest()->getServer('PHP_AUTH_USER', false);
- $phpAuthPw = $this->getController()->getRequest()->getServer('PHP_AUTH_PW', false);
- $scheme = $this->getController()->getRequest()->getScheme();
+ $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,
diff --git app/code/core/Mage/Catalog/Model/Product/Api/V2.php app/code/core/Mage/Catalog/Model/Product/Api/V2.php
index ff71ec5..46fc492 100644
--- app/code/core/Mage/Catalog/Model/Product/Api/V2.php
+++ app/code/core/Mage/Catalog/Model/Product/Api/V2.php

 

Példa: SUPEE-6482_CE_1.9.2.0_v1 sh állományból

 

Patch telepítése .sh állományból lépésről lépésre

A következő lépéseket követve tudja telepíteni az.sh kiterjesztésű foltot a Magento-jához – ha a kiterjesztése .patch lenne, akkor először látogasson el a Magento Support-hoz.

 

1) Másolja fel az .sh állományt a Magento telepítés gyökerébe.

sh patch-file-name.sh

 

2) Adja ki a következő parancsot egy olyan felhasználóval, aki képes írni a Magento állományokat.

Ha a folt sikeresen telepítésre került a következőhöz hasonló üzenetet fog kapni:

Patch was applied/reverted successfully.

 

3) A telepítés után vissza kell szereznie a jogosultságait a módosított állományok felett:

A) Keressük meg a webszerver felhasználóját:

ps -o “user group command” -C httpd, apache2

A USER oszlopban szereplő érték lesz a webszerver felhasználója.

B) root felhasználóként adjuk ki a következő parancsot a Magento telepítési gyökér könyvtárban:

chown -R web-server-user-name .

 

Hajtsunk végre minden további instrukciót, amit a Magento Support írt.

 

Patch visszavonása

Ha a foltozás során hiba lépett fel, akkor a következő lépéseket hajtsuk végre és vegyük fel a kapcsolatot a Magento Support-tal:

  1. Lépjen be a Magento telepítés gyökér könyvtárába.
  2. Adja ki a következő parancsot egy olyan felhasználóval, aki képes írni a Magento állományokat:
sh patch-file-name.sh -R

 

Hogyan kell telepíteni a javítócsomagokat Magento 2 alatt?

A Magento 2.0.4 (2016-03-31) telepítője: 224 MB, 41458 file, a 69.4MB-os ZIP állomány kitömörítése kb. 2-3 percet vesz igénybe! Ha ezeket az állományokat fel szeretnénk másolni a szerverünkre, akkor a kapcsolat sebességétől függően akár egy óráig is eltarthat, ha közben még összehasonlítást is végzünk, több órára is megnövekedhet ez az idő. Ez, ahogy az 1.9.2.4-es verziónál is megállapítottuk, nem ideális.

A Magento 2-es verziónál a frissítéseket Composer segítségével vagy a GIT repository-ból tölthetjük le és telepíthetjük parancssorból. Telepítéskor pedig lehetőségünk van rá, hogy egy varázsló segítségével lépésről lépésre haladva frissítsük rendszerünket.

 

Hogyan ellenőrizhető, hogy telepítésre kerültek a javítócsomagok?

Miután a foltok és javítócsomagok telepítése megtörtént, fontos lehet ellenőrizni annak helyességét, erre két módszert is tudunk javasolni:

  1. A http://magereport.com oldalon adjuk meg a Magento webáruházunk URL-jét és részletes elemzést kapunk arról, hogy milyen javítócsomagok vannak telepítve és milyen javításokra van még szükségünk.
  2. Az .sh állományokban szereplő kód részleteket azonosítva ellenőrizhetjük, hogy a kódbázis frissítése megtörtént-e.

 

Miért nem jó, ha nem telepítjük a javítócsomagokat?

A Magento közösség gőzerővel dolgozik azon, hogy Magento webáruházunk megfeleljen minden igénynek és az esetlegesen felmerülő biztonsági hibákat orvosolják. Hiszen, mint minden szoftver esetén, hiába a sok tesztelés, a használat folyamán derülnek ki olyan hibák, amelyek problémákhoz vezetnek.

A javítócsomagok ezeknek a hibáknak a javításaira adnak gyors megoldást, ráadásul a később érkező verziókba ezek már belekerülnek és így egy javított, biztonságosabb verziót telepíthetnek a felhasználók. Ez a folyamat hosszú, hiszen ahogy egyre többen használják a szoftvert, egyre több igény merül fel és egyre jobban kiderülnek azok az apróságok és megvalósítási problémák, melyek az elején még nem jelentkeztek.

 

Nézzünk rá egy egyszerű példát

Magento CE SUPEE-5344 SHOPLIFT BUG PATCH

 

A patch 2015. február 19-én jött ki, Netanel Rubin jelentette, részletes leírása megtalálható a fenti linken. Javításra kerül a CE 1.9.1.1 verzióban és minden korábbi webáruházat érint, valamint az EE verziót is az 1.14.2.0-ás verziószámig.

Ez egy biztonsági folt, amely megakadályozza, hogy az adminisztrációs oldal átirányítási rendszerében szereplő extra paramétert kihasználva valaki adminisztrációs felhasználókat hozzon létre vagy malware-t telepítsen a rendszerbe. A patch hasznosságának értéke 9.1 (kritikus), ami azt jelenti, hogy veszélyben van a webáruházunk, hiszen aki ismeri a sebezhetőséget akár a teljes uralmat átveheti felette!

Ha belegondolunk, hogy mennyi információt lehet az adminisztrációs felületen megszerezni, akkor láthatjuk, hogy ennek a foltnak a telepítése valóban kritikus webáruházunkban.

 

Konklúzió

A webáruházunk egy szoftver, így rendelkezik egy életciklussal, egy fejlődési úttal és sokszor tartalmazhat hibákat, bugokat vagy biztonsági réseket. Ezeket a Magento mögött álló hatalmas közösség gyorsan, pontosan próbálja orvosolni, így azonnal foltokat (patch) vagy javítócsomagokat adnak ki, melyeket mindenképpen érdemes telepíteni. Az újabb verzióban beépítik ezeket a javításokat, így egy megbízhatóbb és stabilabb rendszert kapunk, ha a legújabb verziót használjuk fel.

Fontos azonban, hogy figyelemmel kövessük a megjelenő patch-eket és újabb verziókat – telepítsük is őket azonnal –, mert a biztonsági réseken keresztül rosszindulatú hackerek férhetnek hozzá áruházunk adataihoz vagy vehetik át felette az uralmat. Legyünk naprakészek és ne sajnáljuk az időt, pénzt és energiát, hogy befoltozzuk ezeket a réseket.

 

1 válasz

Trackbacks & Pingbacks

  1. […] együtt viszont nem jelennek meg patchek, még biztonsági jellegűek sem a korábbi […]

Hagyjon egy választ

Want to join the discussion?
Feel free to contribute!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé.