Oto lista zmodyfikowanych plików według poprawki SUPEE-10570:
app/Mage.php
app/code/core/Mage/Admin/Helper/Data.php
app/code/core/Mage/Admin/Model/Block.php
app/code/core/Mage/Admin/Model/Resource/Block.php
app/code/core/Mage/Admin/Model/User.php
app/code/core/Mage/Adminhtml/Block/Catalog/Category/Edit/Form.php
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php
app/code/core/Mage/Adminhtml/Block/Newsletter/Template/Grid/Renderer/Sender.php
app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php
app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Info.php
app/code/core/Mage/Adminhtml/Block/System/Store/Edit/Form.php
app/code/core/Mage/Adminhtml/Block/Tag/Assigned/Grid.php
app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Store.php
app/code/core/Mage/Adminhtml/Block/Widget/Tabs.php
app/code/core/Mage/Adminhtml/Model/Config/Data.php
app/code/core/Mage/Adminhtml/Model/System/Store.php
app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php
app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Adminhtml/controllers/System/BackupController.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Core/Model/Variable.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/etc/config.xml
app/code/core/Mage/Customer/sql/customer_setup/upgrade-1.6.2.0.1.1.1-1.6.2.0.1.1.2.php
app/code/core/Mage/Downloadable/etc/config.xml
app/code/core/Mage/Downloadable/etc/system.xml
app/code/core/Mage/Downloadable/sql/downloadable_setup/upgrade-1.6.0.0.2.1.1-1.6.0.0.2.1.2.php
app/code/core/Mage/ImportExport/Model/Import.php
app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php
app/code/core/Mage/Shipping/Model/Info.php
app/code/core/Mage/Widget/controllers/Adminhtml/Widget/InstanceController.php
app/design/adminhtml/default/default/template/catalog/product/attribute/set/main.phtml
app/design/adminhtml/default/default/template/customer/tab/view.phtml
app/design/adminhtml/default/default/template/customer/tab/view/sales.phtml
app/design/adminhtml/default/default/template/dashboard/store/switcher.phtml
app/design/adminhtml/default/default/template/downloadable/product/composite/fieldset/downloadable.phtml
app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/creditmemo/name.phtml
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/invoice/name.phtml
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/name.phtml
app/design/adminhtml/default/default/template/newsletter/preview/store.phtml
app/design/adminhtml/default/default/template/report/store/switcher.phtml
app/design/adminhtml/default/default/template/sales/order/view/info.phtml
app/design/adminhtml/default/default/template/store/switcher.phtml
app/design/adminhtml/default/default/template/store/switcher/enhanced.phtml
app/design/adminhtml/default/default/template/system/convert/profile/wizard.phtml
app/design/adminhtml/default/default/template/tax/rate/title.phtml
app/design/adminhtml/default/default/template/widget/form/renderer/fieldset.phtml
app/locale/en_US/Mage_Catalog.csv
app/locale/en_US/Mage_ImportExport.csv
lib/Zend/Mail/Transport/Sendmail.php
EDYTOWAĆ
Wreszcie po wdrożeniu na mojej stronie produktu (CE 1.7.0.2) zauważyłem krytyczny problem z blokowaniem (proces kasy zablokowany).
Kontekst:
po adresie kroku 1 bezpośrednio tworzę ORAZ loguję klienta, powinien zobaczyć tylko następny krok kasy.
Problem:
po supee-10570 proces kasowania jest przerywany po kroku 1 (w przypadku utworzenia konta), a klient zostaje przekierowany na stronę główną (z pustym koszykiem + wylogowanym) = niemożliwe do zrealizowania kasy.
Awaryjna poprawka:
jeśli napotkasz podobny problem z kasą / sesją klienta, skomentuj linie 414-430 z app / code / core / Mage / Core / Model / Session / Abstract / Varien.php (te dodane przez łatkę patrz poniżej).
// if ($this->useValidateSessionPasswordTimestamp()
// && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
// && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
// && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
// > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
// ) {
// return false;
// }
// if ($this->useValidateSessionExpire()
// && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
// && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
// return false;
// } else {
// $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
// = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
// }
EDYCJA (2)
Myślę, że następujący warunek zawsze zwróci false (Mage_Core_Model_Session_Abstract_Varien w liniach 414-419, szczególnie linie 417 + 418).
if ($this->useValidateSessionPasswordTimestamp()
&& isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
&& isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
&& $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
> $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
) {
return false;
VALIDATOR_PASSWORD_CREATE_TIMESTAMP będzie zawsze większy niż VALIDATOR_SESSION_EXPIRE_TIMESTAMP. Znacznik czasu „wygasania” sesji jest redefiniowany przy tworzeniu konta, więc nieuchronnie jest starszy niż init sesji.
Na przykład, jeśli utworzysz klienta podczas kasy, to zwróci fałsz, a klient zostanie po prostu wyrzucony (= zakończenie kasy, przekierowanie do strony głównej i pusty koszyk). Dość źle.
Zgłosiłem ten problem zespołowi magento. Dam jak najszybciej informację zwrotną.
EDYCJA (3)
Nowa łatka jest wip (na stronie pobierania łatki magento jest napisane „SUPEE-10570 dla CE 1.7.0.0 - OCZEKIWANIE NA ZAKTUALIZOWANĄ ŁATKĘ, NIE UŻYWAJ (0,06 MB)”).
EDYCJA (4) ~ 1 miesiąc po zgłoszeniu pierwszego problemu z blokowaniem
Cześć! Mam nadzieję, że wszyscy jesteście dobrami (i mam nadzieję, że do tej pory nie zachowaliście stanu początkowej łatki, chyba że dochody z firmy prawdopodobnie poważnie spadły ^^).
Zauważyłem następujące zdanie z oficjalnej strony: „Magento udostępnia teraz zaktualizowaną łatkę (SUPEE-10570v2), która nie powoduje już tego problemu. Pamiętaj jednak, że ta nowa łatka nie chroni już przed dwoma sesjami związanymi z obsługą sesji o niskim ryzyku problemy z bezpieczeństwem, które chronią przed SUPEE-10570. ” z oficjalnej strony supee-10570.
Na stronie wydania możemy wreszcie znaleźć plik v2 (PATCH_SUPEE-10570_CE_v1.7.0.2_v2-2018-03-29-08-52-37.sh).
Szczegółowo zbadałem modyfikacje. Wreszcie wydaje się, że zespół magento postanowił porzucić część bezpieczeństwa dotyczącą łatki. Mam nadzieję, że ta dziura w zabezpieczeniach nie spowoduje poważnych szkód (zgodnie z oficjalną notatką, jest mało krytyczna).
Po przywróceniu v1 + zastosuj v2, pamiętaj, że następujące pliki są przywracane do stanu początkowego (przed zastosowaniem v1):
app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php
PS: oczywiście niektóre inne pliki również są modyfikowane, sprawdź to odpowiednio.