SUPEE-10975 Potencjalne problemy

16

SUPEE-10975 został wydany, byłoby wspaniale wiedzieć, jeśli ktoś napotka jakieś problemy podczas próby zastosowania tego, czy ten konflikt z najnowszą łatą, która dodaje obsługę 7.2?

Jak dotąd są to zmienione pliki, które widzę

app/code/core/Mage/Adminhtml/Block/Customer/Group/Edit.php
app/code/core/Mage/Adminhtml/Block/Newsletter/Template/Edit.php
app/code/core/Mage/Adminhtml/controllers/Cms/BlockController.php
app/code/core/Mage/Adminhtml/controllers/Customer/GroupController.php
app/code/core/Mage/Adminhtml/controllers/SitemapController.php
app/code/core/Mage/Adminhtml/controllers/System/BackupController.php
app/code/core/Mage/Captcha/Model/Observer.php
app/code/core/Mage/Captcha/Model/Zend.php
app/code/core/Mage/Captcha/etc/config.xml
app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php
app/code/core/Mage/Catalog/Model/Product/Attribute/Media/Api.php
app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php
app/code/core/Mage/Core/etc/config.xml
app/code/core/Mage/Core/sql/core_setup/upgrade-1.6.0.7.1.1-1.6.0.7.1.2.php
app/code/core/Mage/Dataflow/Model/Convert/Container/Abstract.php
app/code/core/Mage/ImportExport/Model/Import/Entity/Customer.php
app/code/core/Mage/ImportExport/Model/Import/Entity/Customer/Address.php
app/code/core/Mage/Payment/etc/config.xml
app/code/core/Mage/Payment/etc/system.xml
app/code/core/Mage/Payment/sql/payment_setup/upgrade-1.6.0.0.1.1-1.6.0.0.1.2.php
app/code/core/Mage/Sendfriend/Block/Send.php
app/code/core/Mage/Wishlist/controllers/IndexController.php
app/code/core/Zend/Controller/Request/Http.php
app/design/adminhtml/default/default/template/cms/browser/content/files.phtml
app/design/frontend/base/default/layout/captcha.xml
app/design/frontend/base/default/template/wishlist/sharing.phtml
app/design/frontend/rwd/default/layout/page.xml
app/design/frontend/rwd/default/template/sendfriend/send.phtml
app/etc/modules/Mage_All.xml
app/etc/modules/Mage_Captcha.xml
app/locale/en_US/Mage_Wishlist.csv
js/lib/jquery/jquery-1.12.0.js
js/lib/jquery/jquery-1.12.0.min.js
js/lib/jquery/jquery-1.12.0.min.map
js/lib/jquery/jquery-1.12.1.js
js/lib/jquery/jquery-1.12.1.min.js
js/lib/jquery/jquery-1.12.1.min.map

Czy ktoś napotkał jakieś problemy z tymi zmianami?

Razentyczny
źródło

Odpowiedzi:

12

Do tej pory natrafiłem na następujące problemy z poprawką SUPEE-10975:

  • Usunięcie grup klientów za pośrednictwem administratora nie jest już możliwe z powodu braku instrukcji return w nowej metodzie Mage_Adminhtml_Block_Customer_Group_Edit::getDeleteUrl(problem wykryty przez @ mikhail-chelevich). Jest tak w przypadku, gdy tajne klucze są włączone dla administratora, co jest ustawieniem domyślnym. Problem występuje również w 1.9.4.0. Ten problem został rozwiązany przez łatkę SUPEE-11043, która nie została oficjalnie wydana, ale jest dostępna jako GistHub Gist .
  • Nie Mage_Sendfriendmożna wyłączyć Mage_Captchamodułu bez wyłączenia modułu. W przeciwnym razie występuje następujący wyjątek podstawowy:Module "Mage_Captcha" requires module "Mage_Sendfriend". (problem wykryty przez @zlep)
  • Zmiany w sendfriend/send.phtmlszablonie wprowadzone w rwd/defaultkompozycji nie są wprowadzane w base/defaultkompozycji. Oznacza to, że dla base/defaultmotywu nie można włączyć CAPTCHA, a także nazwy i e-maile poprzednio wprowadzonych odbiorców nie są wyświetlane na stronie (w typowym przypadku przesłania formularza, który powoduje błąd sprawdzania poprawności po stronie serwera).
  • Nowa metoda Mage_Sendfriend_Block_Send::getRecipientsCountwprowadza niekompatybilność z PHP 7.2, ponieważ countwykonywana jest na NULLwartości podczas ładowania strony bez żadnych odbiorców (która jest domyślna przy ładowaniu nowej strony). Ten problem został rozwiązany w wersji 1.9.4.0.

Pamiętaj, że sprawdziłem łatkę tylko pod kątem wersji 1.9.3.10, ale podejrzewam, że problemy występują we wszystkich wersjach łatki.

Aad Mathijssen
źródło
11

Brakuje return parent::getDeleteUrl()w aplikacji / code / core / Mage / Adminhtml / Block / Customer / Group / Edit.php

+    public function getDeleteUrl()
+    {
+        if (!Mage::getSingleton('adminhtml/url')->useSecretKey()) {
+            return $this->getUrl('*/*/delete', array(
+                $this->_objectId => $this->getRequest()->getParam($this->_objectId),
+                'form_key' => Mage::getSingleton('core/session')->getFormKey()
+            ));
+        } else {
+            parent::getDeleteUrl();
+        }
+    }
Michaił Chelevich
źródło
Dla jakiej wersji Magento to było?
danmentzer
1
Mogę potwierdzić ten problem: usunięcie grup klientów za pośrednictwem administratora nie jest już możliwe. Dzieje się tak, gdy tajne klucze są włączone dla administratora, który jest domyślny. Jest to obecne w łatce de SUPEE-10975, a także w Magento Open Source 1.9.4.0.
Aad Mathijssen
Utworzono dodatkową łatkę, aby rozwiązać ten problem SUPEE-11043
Andrew
@ andrew Nie mogę znaleźć niczego na temat SUPEE-11043. czy możesz połączyć niektóre źródła?
darnok
1
Tak więc poprawka powinna zastępować parent::getDeleteUrl();w app / code / core / Mage / Adminhtml / Block / Customer / Group / Edit.php przezreturn parent::getDeleteUrl();
René Schep
8

Wystąpił problem z łatką 10975. Po pewnym dochodzeniu udało mi się znaleźć odpowiedź na pytanie, gdzie łata się psuje i dlaczego.

Podsumowując poniżej, sprawdź, czy poprawnie załatałeś SUPEE 9767 V2 . To jest podstawa mojego problemu.

sh PATCH_SUPEE-10975_EE_v1.12.0.2_v1-2018-11-27-10-36-30.sh
Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

patching file app/code/core/Enterprise/PageCache/Model/Processor.php
Hunk #1 succeeded at 690 (offset -3 lines).
patching file app/code/core/Enterprise/Pci/etc/config.xml
patching file app/code/core/Enterprise/Wishlist/Block/Customer/Sharing.php
patching file app/code/core/Mage/Adminhtml/Block/Customer/Group/Edit.php
patching file app/code/core/Mage/Adminhtml/Block/Newsletter/Template/Edit.php
patching file app/code/core/Mage/Adminhtml/controllers/Cms/BlockController.php
patching file app/code/core/Mage/Adminhtml/controllers/Customer/GroupController.php
patching file app/code/core/Mage/Adminhtml/controllers/SitemapController.php
patching file app/code/core/Mage/Adminhtml/controllers/System/BackupController.php
patching file app/code/core/Mage/Captcha/Model/Observer.php
patching file app/code/core/Mage/Captcha/Model/Zend.php
patching file app/code/core/Mage/Captcha/etc/config.xml
patching file app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php
patching file app/code/core/Mage/Catalog/Model/Product/Attribute/Media/Api.php
patching file app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php
patching file app/code/core/Mage/Core/etc/config.xml
Hunk #1 FAILED at 28.
1 out of 3 hunks FAILED -- saving rejects to file app/code/core/Mage/Core/etc/config.xml.rej
patching file app/code/core/Mage/Core/sql/core_setup/upgrade-1.6.0.2.1.2-1.6.0.2.1.3.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Container/Abstract.php
patching file app/code/core/Mage/ImportExport/Model/Import/Entity/Customer.php
patching file app/code/core/Mage/ImportExport/Model/Import/Entity/Customer/Address.php
patching file app/code/core/Mage/Payment/etc/config.xml
patching file app/code/core/Mage/Payment/etc/system.xml
patching file app/code/core/Mage/Payment/sql/payment_setup/upgrade-1.6.0.0.1.1-1.6.0.0.1.2.php
patching file app/code/core/Mage/Wishlist/controllers/IndexController.php
patching file app/code/core/Zend/Controller/Request/Http.php
patching file app/design/adminhtml/default/default/template/cms/browser/content/files.phtml
patching file app/design/adminhtml/default/default/template/enterprise/cms/page/preview/revision.phtml
patching file app/design/adminhtml/default/default/template/enterprise/customersegment/report/detail/grid/container.phtml
patching file app/design/adminhtml/default/default/template/enterprise/giftregistry/customer/form.phtml
patching file app/design/adminhtml/default/default/template/enterprise/staging/log/information/merge.phtml
patching file app/design/adminhtml/default/default/template/enterprise/staging/log/information/rollback.phtml
patching file app/design/frontend/base/default/layout/captcha.xml
patching file app/design/frontend/base/default/template/wishlist/sharing.phtml
patching file app/design/frontend/enterprise/iphone/template/downloadable/sales/order/creditmemo/items/renderer/downloadable.phtml
patching file app/etc/modules/Mage_All.xml
patching file app/etc/modules/Mage_Captcha.xml
patching file app/locale/en_US/Enterprise_Wishlist.csv
patching file app/locale/en_US/Mage_Wishlist.csv
patching file js/enterprise/adminhtml/staging.js

Powyżej znajduje się błąd, który trafił w ten plik.

Mage / Core / etc / config.xml

Błąd pochodzi z tej linii łatki.

diff --git app/code/core/Mage/Core/etc/config.xml app/code/core/Mage/Core/etc/config.xml
index 4aebdcdc2cf..4b28f2765a1 100644
--- app/code/core/Mage/Core/etc/config.xml
+++ app/code/core/Mage/Core/etc/config.xml
@@ -28,7 +28,7 @@
 <config>
     <modules>
         <Mage_Core>
-            <version>1.6.0.2.1.2</version>
+            <version>1.6.0.2.1.3</version>
         </Mage_Core>
     </modules>
     <global>

Wersja wymieniona tutaj nie pasuje poprawnie z powodu ręcznego łatania

SUPEE 9767 v2

Ta łatka pochodzi z tej linii, której brakowało mi podczas ręcznego łatania.

diff --git app/code/core/Mage/Core/etc/config.xml app/code/core/Mage/Core/etc/config.xml
index 4a0ff1b..d0de702 100644
--- app/code/core/Mage/Core/etc/config.xml
+++ app/code/core/Mage/Core/etc/config.xml
@@ -28,7 +28,7 @@
 <config>
     <modules>
         <Mage_Core>
-            <version>1.6.0.2</version>
+            <version>1.6.0.2.1.2</version>
         </Mage_Core>
     </modules>
     <global>
danmentzer
źródło
5

Po pierwsze, przepraszam za duplikat odpowiedzi ereja , nie mogę komentować ani edytować z powodu mojej oceny reputacji.

Łata tworzy tutaj nowy plik: app/code/core/Zend/Controller/Request/Http.php

Który jest dodawany w celu zastąpienia tego pliku: lib/Zend/Controller/Request/Http.php

Problem dotyczy Magento w wersji 1.9.0.0 (EE 1.14.0.0):

Ta metoda :

/**
 * Everything in REQUEST_URI before PATH_INFO
 * <form action="<?=$baseUrl?>/news/submit" method="POST"/>
 *
 * @return string
 */
public function getBaseUrl($raw = false)
{
    if (null === $this->_baseUrl) {
        $this->setBaseUrl();
    }

    return (($raw == false) ? urldecode($this->_baseUrl) : $this->_baseUrl);
}

Zostaje zastąpione w pliku Magento Core app/code/core/Mage/Core/Controller/Request/Http.php

public function getBaseUrl()
{
    $url = parent::getBaseUrl();
    $url = str_replace('\\', '/', $url);
    return $url;
}

Co nie wymaga żadnych argumentów.

Odpala więc to ścisłe powiadomienie na dowolnym adresie URL, froncie i serwerze administracyjnym:

Strict Notice: Declaration of Mage_Core_Controller_Request_Http::getBaseUrl() should be compatible with Zend_Controller_Request_Http::getBaseUrl($raw = false) in /var/www/htdocs/app/code/core/Mage/Core/Controller/Request/Http.php on line 36

Jeśli ktoś wie, czy któraś z wersji V2 tej poprawki jest w drodze, daj mi znać.

Czekając na ich aktualizację, możesz przedefiniować metodę w następujący sposób app/code/core/Mage/Core/Controller/Request/Http.php:

/**
 * @param bool $raw - Added manually to correct SUPEE-10975 oversight
 *      See /magento/251317/supee-10975-potential-issues
 *      for more information
 *
 * @return mixed|string
 */
public function getBaseUrl($raw = false)
{
    $url = parent::getBaseUrl($raw); // Argument added manually to correct SUPEE-10975 oversight
    $url = str_replace('\\', '/', $url);
    return $url;
}
jdemandre
źródło
4

W wersji 1.8.1.0 po zastosowaniu tej poprawki musieliśmy również zmienić app/code/core/Mage/Core/Controller/Request/Http.php::getBaseUrl()funkcję na

public function getBaseUrl($raw = false)
{
    $url = parent::getBaseUrl($raw);
    $url = str_replace('\\', '/', $url);
    return $url;
}

ponieważ ta łatka dodaje app/code/core/Zend/Controller/Request/Http.phpplik i getBaseUrl()funkcja jest zadeklarowana parametrem $raw = false.

erej
źródło
Dodanie tej funkcji nie powinno być konieczne. Po prostu zawsze domyślnie nie będzie surowe, ponieważ żadna funkcja wywołująca tę funkcję nie powinna mieć ustawionego $ raw w 1.8.1.
René Schep,
4

Mam problem z „Hunk # 1 FAILED at 28”

Odrzucenia są podobno zapisywane w config.xml.rej, ale ten plik nie istnieje, nie ma też opisu tego, która część skryptu zawiodła w moim oknie terminala. Zasadniczo łatka się nie udaje i nic nie wskazuje na to, dlaczego - przynajmniej nie dla takiego głupka jak ja!

Przy pierwszym uruchomieniu łatka próbowała usunąć trzy pliki jquery v 1.12.0, które nie istniały, zastąpiłem je i ponownie zastosowałem łatkę, ale teraz kończy się ona niepowodzeniem bez żadnego przydatnego opisu.

Magento 1.9.0.1 w pełni załatane oprócz aktualizacji kompatybilności z PHP 7.2, pozostanie niezałatowane, chyba że uda mi się to wypracować lub ktoś tutaj może dać mi wskazówkę (proszę!) Dzięki H

PS Nie jestem pewien, czy mój post jest niezgodny z wytycznymi SE, odpowiadam na oryginalne pytanie, ale proszę o pomoc.

Sparko
źródło
1
Natknąłem się na ten problem, ponieważ jest on związany z poprawką 9767 v2, która dodaje nowy numer wersji do Mage / Core / etc / config.xml Trzeba tylko dodać do bieżącego numeru wersji. 1.2 Będę też pisać odpowiedź również na to.
danmentzer
3

Mage_BackupModuł zostanie wyłączony przez patch.

Jest to wspomniane w oficjalnych informacjach o wydaniu ( https://devdocs.magento.com/guides/m1x/ce19-ee114/ce1.9_release-notes.html#ce19-1940 ).

Jednak sugerowane rozwiązanie ponownego włączenia jest nieprawidłowe:

(„Alternatywnie możesz użyć jednego z tych dwóch metod, aby włączyć tworzenie kopii zapasowych bazy danych”)

Aby w pełni włączyć tę funkcję, musisz użyć obu wymienionych metod.

poebel
źródło
2
Pamiętaj również, że ponowne włączenie modułu Mage_Backup otwiera: „problemy ze zdalnym wykonywaniem kodu (RCE), skryptami krzyżowymi (XSS) i fałszowaniem żądań krzyżowych (CSRF)”.
René Schep,
2

Mogą wystąpić problemy z obsługą obliczania podatku prawidłową .

Jak zwykle w wielu krajach, nasz klient stosuje „ ceny zawierają podatki konfiguracji Magento ”.

Tak więc, po aktualizacji z 1.9.3.10 do 1.9.4.0, podatek został dodany do ogólnej sumy w kasie, oprócz cen produktów już zawierających podatki.

Śledziłem problem aż do zmiany konfiguracji w pliku app / code / core / Mage / Sales / etc / config.xml , gdzie „ msrp ” został dodany do węzła sales / quote / totals / shipping / after .

W informacjach o wydaniu nie znalazłem niczego dotyczącego MSRP i mam nadzieję, że jest to izolowana zmiana bez żadnych skutków ubocznych.

Moje rozwiązanie polegało na zmianie tego węzła z powrotem na jego pierwotną wartość „ suma częściowa, freeshipping, tax_subtotal ” bez „ msrp ”. Zrobiłem to w pliku etc / config.xml mojego własnego modułu.

tdk_qst
źródło
1

Konkretny problem, ale jeśli wyłączyłeś Mage_Sendfriend (który wcześniej był modułem, możesz bezpiecznie wyłączyć), zgłosi błąd wyjątku.

zlep
źródło
1
Sprawili, że Mage_Captcha zależało od Mage_Sendfriend zamiast na odwrót. Musisz więc również dezaktywować Mage_Captcha, aby wyłączyć Mage_Sendfriend. Co może nie być tym, czego chcesz, ponieważ wyłącza wszystkie domyślne recaptcha Magento
René
0

Próbowałem uaktualnić z Magento CE 1.9.3.10 do 1.9.4.0 dzisiaj i miałem wiele błędów. Na szczęście nie zepsuło to instalacji. Po instalacji dostałem przerażające - wewnętrzny błąd serwera. Zostałem zablokowany i musiałem zresetować wszystkie moje uprawnienia do plików i folderów przez SSH wraz z usunięciem pliku Maintenance.flag. Następnie ponownie zindeksowałem i ponownie włączyłem pamięć podręczną. Dodatkowo musiałem przywrócić mój stary plik .htaccess w folderze Root and Download. Nie jestem pewien, jakie powinny być działania naprawcze, aby instalacja przebiegła pomyślnie. Zapomniałem skopiować tekstu z okna wiersza poleceń. Nie mogę więc opublikować wszystkich błędów. Widziałem niezgodne wiadomości.

Neal Hart
źródło
1
Nie sądzę, aby metoda „uaktualnienia” za pomocą downloadera działała na każdej instalacji, która jest co najmniej trochę edytowana. Czy jestem szalony?
Kalvin Klien
Metoda „aktualizacji” za pomocą Magento Connect działa dla mnie za każdym razem. Używam go do wszystkich trzech naszych witryn M1 i wszystkie są mocno (choć odpowiednio) dostosowane.
MagentoAaron
0

Czy usunęli Zaplanowaną kopię zapasową? Brak sekcji Zaplanowane tworzenie kopii zapasowych

Czy mam jakiś problem? Dlaczego w żadnej notatce nie ma o tym wzmianki? To wydaje się być wzorem dla Magento, w którym nie wspominają o takich zmianach, gdy pojawią się aktualizacje.

AKTUALIZACJA: wygląda na to, że całkowicie usunęli ją ze wszystkich wersji.

AKTUALIZACJA: musiałem wykonywać kopie zapasowe inaczej. Jeśli ktoś jest zainteresowany, zamieściłem tutaj niektóre polecenia CRON: Strategia tworzenia kopii zapasowych po SUPEE-10975?

Kalvin Klien
źródło
Czy to dla jakiejś konkretnej wersji?
Razentic
2
Na twitter.com/ryanhoerr/status/1067819214314987520 To jest konkretna część, którą usunęli w tej łatce.
danmentzer
O Boże ... ok klasyczny - muszę dowiedzieć się z innego źródła niż Magento o usunięciu / dodaniu funkcji.
Kalvin Klien
1
@KalvinKlien faktycznie, pierwszy akapit informacji o wydaniu mówi, że został dezaktywowany; devdocs.magento.com/guides/m1x/ce19-ee114/…
Peter Jaap Blaakmeer
3
Zmiana w tej łatce polega na tym, że Mage_Backup jest domyślnie wyłączony, a kontrole uruchomienia kodu są bardziej rygorystyczne (np. Jeśli wyjście bloku dla modułu zostanie wyłączone, kopie zapasowe nie będą działać). Nadal możesz ręcznie ponownie włączyć moduł, zmieniając wartość false na true w sekcji Mage_Backup w aplikacji / etc / modules / Mage_All.xml. Należy pamiętać, że ponowne włączenie funkcji tworzenia kopii zapasowych potencjalnie pozwala na: „problemy ze zdalnym wykonywaniem kodu (RCE), skryptami krzyżowymi (XSS) i fałszowaniem żądań krzyżowych (CSRF)”.
René Schep,
0

W witrynie, w której poprzedni programista korzystał z niestandardowej konfiguracji wielu sklepów, zauważyliśmy problem. Wszystkie adresy URL sklepów innych niż sklep podstawowy to 404ing. Ustawił zmienną serwerową „HTTP_X_REWRITE_URL” / nagłówek HTTP, która zmieniła adres URL przetwarzany przez żądanie Magento.

Ta zmienna jest / była używana przez \ Zend_Controller_Request_Http :: setRequestUri (), ale nowa wersja w app / code / core / Zend / Controller / Request / Http.php już tego nie używa. Możliwe poprawki to:

  • Ustaw $ _SERVER [„IIS_WasUrlRewritten”] na „1”, a zamiast tego ustaw $ _SERVER [„UNENCODED_URL”]
  • Zamiast tego ustaw $ _SERVER [„REQUEST_URI”]

Każdy z nich prawdopodobnie działałby, ale ten pierwszy prawdopodobnie nie będzie miał niezamierzonych konsekwencji, ponieważ działa bliżej poprzedniego systemu.

Li1t
źródło
0

Określony błąd w metodzie płatności nie jest dostępny

Otrzymaliśmy wiele The requested Payment Method is not availablebłędów zgłoszonych przez Magento. Wszystkie zamówienia, w których była metoda płatności w zwrocie produktu ccsave, która została usunięta przez tę opłatę w config.xml.

Błąd jest generowany, ponieważ Magento szuka $key(w ccsave metoda płatności, w tym przypadku) przez sprawdzenie ścieżek XML: payment/ccsave/model. Jeśli go nie znajdzie, zgłasza błąd. Więc właśnie zrobiliśmy a git checkout [insert supee commit]^ app/code/core/Mage/Payment/etc/config.xmli nacisnęliśmy na master, aby naprawić błąd.

app / code / core / Mage / Payment / Helper / Data.php

public function getMethodInstance($code)
{
    $key = self::XML_PATH_PAYMENT_METHODS.'/'.$code.'/model';
    $class = Mage::getStoreConfig($key);
    return Mage::getModel($class);
}

app / code / core / Mage / Payment / etc / config.xml

<default>
  <payment>
      <ccsave>
        <model>payment/method_ccsave</model>
      </ccsave>
  </payment>
  ...
</default>
mikemols
źródło
-5

Prawdopodobnie nie, ale i tak wersja 1.9.4.0 już zaimplementowała.

Ricardo Martins
źródło
1
Te posty na stosie są specjalnie po to, aby inni deweloperzy byli świadomi problemów, na które twoja odpowiedź nie jest pomocna ani opisowa na temat jakiegokolwiek problemu. Naprawdę po prostu to usunę.
danmentzer