Problemas Potenciais SUPEE-10975

16

Foi lançado o SUPEE-10975. Seria ótimo saber se alguém se deparar com algum problema ao tentar aplicar isso. Isso entrará em conflito com o patch mais recente que adiciona suporte ao 7.2?

Até agora, esses são os arquivos alterados que posso ver

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

Alguém já teve algum problema com essas alterações?

Razentic
fonte

Respostas:

12

Até agora, deparei-me com os seguintes problemas com o patch SUPEE-10975:

  • Não é mais possível excluir grupos de clientes através do administrador devido a uma declaração de retorno ausente no novo método Mage_Adminhtml_Block_Customer_Group_Edit::getDeleteUrl(problema encontrado por @ mikhail-chelevich). É o caso de chaves secretas ativadas para o administrador, que é o padrão. O problema também está presente no 1.9.4.0. Esse problema foi corrigido pelo patch SUPEE-11043, que não foi lançado oficialmente, mas está disponível como um GistHub Gist .
  • O Mage_Sendfriendmódulo não pode ser desativado sem também desativar o Mage_Captchamódulo. Caso contrário, ocorre a seguinte exceção principal: Module "Mage_Captcha" requires module "Mage_Sendfriend".(problema encontrado por @zlep)
  • As alterações no sendfriend/send.phtmlmodelo que foram feitas no rwd/defaulttema não são feitas no base/defaulttema. Isso significa que, para o base/defaulttema, o CAPTCHA não pode ser ativado e também que nomes e e-mails de destinatários inseridos anteriormente não são mostrados na página (no caso típico de um envio de formulário que aciona um erro de validação no servidor).
  • O novo método Mage_Sendfriend_Block_Send::getRecipientsCountintroduz uma incompatibilidade do PHP 7.2 porque a counté executada em um NULLvalor ao carregar a página sem destinatários (que é o padrão no carregamento de página nova). Este problema foi corrigido no 1.9.4.0.

Observe que apenas verifiquei o patch para 1.9.3.10, mas suspeito que os problemas estejam presentes em todas as versões do patch.

Aad Mathijssen
fonte
11

Faltando return parent::getDeleteUrl()em app / 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();
+        }
+    }
Mikhail Chelevich
fonte
Qual foi a versão do Magento?
Danmentzer
1
Posso confirmar este problema: não é mais possível excluir grupos de clientes por meio do administrador. Isso acontece quando as chaves secretas são ativadas para o administrador, que é o padrão. Isso está presente no patch SUPEE-10975 e também no Magento Open Source 1.9.4.0.
Aad Mathijssen
Um patch adicional foi criado para resolver este SUPEE-11043
Andrew
@andrew Não consigo encontrar nada sobre o SUPEE-11043. você pode vincular algumas fontes?
precisa saber é o seguinte
1
Portanto, a correção deve ser substituída parent::getDeleteUrl();em app / code / core / Mage / Adminhtml / Block / Customer / Group / Edit.php porreturn parent::getDeleteUrl();
René Schep
8

Corri um problema com o patch 10975. Depois de alguma investigação, consegui rastrear a resposta sobre onde o patch estava estragando e por quê.

Para resumir a verificação abaixo, verifique se corrigiu o SUPEE 9767 V2 corretamente. Essa é a raiz do meu problema.

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

Acima está o erro que acertei, específico para este arquivo.

Mage / Core / etc / config.xml

O erro vem desta linha do patch.

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>

A versão listada aqui não corresponde corretamente devido ao patch manual

SUPEE 9767 v2

Esse patch veio com esta linha que eu perdi ao fazer o patch manualmente.

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
fonte
5

Em primeiro lugar, desculpe pela duplicata da resposta de erej , não posso comentar nem editar devido à minha pontuação de reputação.

O patch cria um novo arquivo aqui: app/code/core/Zend/Controller/Request/Http.php

Que é adicionado para substituir este arquivo: lib/Zend/Controller/Request/Http.php

O problema é para Magento sob 1.9.0.0 (EE 1.14.0.0):

Este método :

/**
 * 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);
}

É substituído no arquivo Magento Core app/code/core/Mage/Core/Controller/Request/Http.php

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

O que não requer argumentos.

Por isso, dispara este aviso estrito em qualquer URL do site, front & admin:

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

Se alguém souber se algum V2 desse patch está a caminho, entre em contato.

Aguardando a atualização, você pode redefinir o método da app/code/core/Mage/Core/Controller/Request/Http.phpseguinte maneira:

/**
 * @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
fonte
4

Com a versão 1.8.1.0 após a aplicação deste patch, também tivemos que mudar de app/code/core/Mage/Core/Controller/Request/Http.php::getBaseUrl()função para

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

porque este patch adiciona app/code/core/Zend/Controller/Request/Http.phparquivo e getBaseUrl()função é declarada com o parâmetro $raw = false.

erej
fonte
Não deve ser necessário adicionar esta função. Ele sempre será padronizado como não bruto, porque qualquer funcionalidade que chame essa função não deve ter $ raw definido no 1.8.1.
René Schep
4

Estou com um problema com 'Hunk # 1 FAILED at 28'

Os rejeitos são salvos no config.xml.rej, mas esse arquivo não existe, nem há descrição de qual parte do script falhou na minha janela do terminal. Basicamente, o patch falha e não há indicação do motivo - pelo menos para um idiota como eu!

Na primeira execução, o patch tentou excluir três arquivos do jquery v 1.12.0 que não existiam, substituí-os e apliquei o patch novamente, mas agora falha sem nenhuma descrição útil.

O Magento 1.9.0.1 totalmente corrigido, além da atualização de compatibilidade do PHP 7.2, permanecerá sem patch, a menos que eu possa resolver isso ou alguém aqui possa me dar uma pista (por favor!)

PS Não tenho certeza se minha postagem viola as diretrizes da SE, estou respondendo à pergunta original, mas também estou pedindo ajuda.

Sparko
fonte
1
Corri para esse problema e ele está relacionado ao patch 9767 v2. Ele adiciona um novo número de versão ao Mage / Core / etc / config.xml. Você só precisa adicionar o número da versão atual. 1.2 Também vou escrever uma resposta para isso também.
Danmentzer 29/11/19
3

O Mage_Backupmódulo será desativado pelo patch.

Isso é mencionado nas notas oficiais de lançamento ( https://devdocs.magento.com/guides/m1x/ce19-ee114/ce1.9_release-notes.html#ce19-1940 ).

No entanto, a solução sugerida para reativá-lo está errada:

("Como alternativa, você pode usar um desses dois métodos para ativar os backups do banco de dados")

Você realmente precisa usar os dois métodos mencionados para reativá-lo totalmente.

poebel
fonte
2
Lembre-se também de que a reativação do módulo Mage_Backup abre você para: "problemas de execução remota de código (RCE), script entre sites (XSS) e falsificação de solicitações entre sites (CSRF)".
René Schep
2

Pode haver problemas ao lidar com o cálculo de imposto corretamente.

Como é habitual em muitos países, nosso cliente usa a configuração " preços incluem impostos " do Magento.

Portanto, após a atualização de 1.9.3.10 a 1.9.4.0, o imposto foi adicionado ao total geral no checkout, além dos preços dos itens, incluindo os impostos.

Rastreei o problema até uma alteração na configuração no arquivo app / code / core / Mage / Sales / etc / config.xml , em que " msrp " foi adicionado ao nó sales / quote / totals / shipping / after .

Não encontrei nada sobre o MSRP nas notas de versão e espero que seja uma alteração isolada sem efeitos colaterais.

Minha solução foi alterar esse nó de volta ao seu valor original " subtotal, frete grátis, tax_subtotal " sem o " msrp ". Eu fiz isso no etc / config.xml do meu próprio módulo.

tdk_qst
fonte
1

Problema específico, mas se você desabilitou o Mage_Sendfriend (que anteriormente era um módulo, você pode desabilitar com segurança), ocorrerá um erro de exceção.

zlep
fonte
1
Eles fizeram com que Mage_Captcha dependesse de Mage_Sendfriend, e não o contrário. Portanto, você também precisa desativar o Mage_Captcha para desativar o Mage_Sendfriend. Que pode não ser o que você quer, porque ele desativa todos do recaptcha padrão Magento
René Schep
0

Tentei atualizar o Magento CE 1.9.3.10 para 1.9.4.0 hoje e tive vários erros. Felizmente, não atrapalhou a instalação. Após a instalação, recebi o temido - Internal Server Error. Eu fiquei bloqueado e tive que redefinir todas as minhas permissões de arquivo e pasta via SSH, além de remover o maintenance.flag. Em seguida, reindexei e reativei o cache. Além disso, tive que reverter para o meu arquivo .htaccess antigo na pasta Raiz e Download. Não tenho certeza qual deve ser a ação corretiva para obter uma instalação bem-sucedida. Esqueci de copiar o texto da janela da linha de comando. Portanto, não posso postar todos os erros. O que eu vi foram mensagens incompatíveis.

Neal Hart
fonte
1
Eu não acho que o método "upgrade" através do downloader já funcionou em qualquer instalação que seja pelo menos um pouco editada. Eu sou louco?
Kalvin Klien
O método "upgrade" usando o Magento Connect funciona sempre para mim. Eu o uso para todos os três sites M1 e todos eles são fortemente (embora adequadamente) personalizados.
MagentoAaron 21/01/19
0

Eles removeram o Backup agendado? Nenhuma seção de backup agendado

Ou eu tenho algum tipo de problema? Por que não há menção a isso em nenhuma das notas? Este parece ser um padrão no Magento, onde eles não mencionam mudanças como essas quando as atualizações são lançadas.

ATUALIZAÇÃO: parece que eles o removeram completamente de todas as versões.

UPDATE: teve que fazer backups de maneira diferente. Se alguém estiver interessado, postei alguns dos comandos do CRON aqui: Estratégia de backup após o SUPEE-10975?

Kalvin Klien
fonte
Isso é para alguma versão específica?
Razentic
2
Por twitter.com/ryanhoerr/status/1067819214314987520 Essa é uma parte específica que eles removeram por esse patch.
Danmentzer
Oh deus ... ok clássico - tenho que descobrir de alguma outra fonte, em seguida, magento sobre remoção / adição de recursos.
Kalvin Klien
1
@KalvinKlien, na verdade, o primeiro parágrafo das notas de versão afirma que foi desativado; devdocs.magento.com/guides/m1x/ce19-ee114/…
Peter Jaap Blaakmeer
3
A mudança neste patch é que o Mage_Backup é desativado por padrão e as verificações para execução do código são mais rigorosas (por exemplo, se a saída do bloco para o módulo estiver desativada, os backups não serão executados). Você ainda pode reativar manualmente o módulo alterando false para true na seção Mage_Backup do aplicativo / etc / modules / Mage_All.xml. Cuidado para que a reativação da funcionalidade de backup permita: "problemas de execução remota de código (RCE), script entre sites (XSS) e falsificação de solicitação entre sites (CSRF)".
René Schep
0

Vimos um problema em um site que estava usando uma configuração personalizada de várias lojas por um desenvolvedor anterior. Todos os URLs para lojas que não a loja base eram 404. Ele configurou a variável de servidor "HTTP_X_REWRITE_URL" / HTTP Header, que alterou a URL conforme processada pela solicitação Magento.

Essa variável é / foi usada por \ Zend_Controller_Request_Http :: setRequestUri (), mas a nova versão em app / code / core / Zend / Controller / Request / Http.php não a usa mais. As possíveis correções foram:

  • Defina $ _SERVER ["IIS_WasUrlRewritten"] como '1' e defina $ _SERVER ["UNENCODED_URL"]
  • Defina $ _SERVER ["REQUEST_URI"] em vez disso

Qualquer um provavelmente funcionaria, mas o primeiro provavelmente tem menos chances de ter consequências indesejadas, pois funciona mais próximo do sistema anterior.

Li1t
fonte
0

Erro específico no método de pagamento não está disponível

Temos muitos The requested Payment Method is not available erros gerados pelo Magento. Tudo em pedidos em que o método de pagamento na devolução do produto era ccsave, que foi removido por essa entrada em config.xml.

O erro está sendo gerado porque o Magento está procurando por um $key (a ccsave método de pagamento, neste caso), verificando os caminhos xml: payment/ccsave/model. Se não o encontrar, gera um erro. Então, nós apenas fizemos um git checkout [insert supee commit]^ app/code/core/Mage/Payment/etc/config.xmle pressionamos o mestre para corrigir o erro.

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
fonte
-5

Provavelmente não, mas a versão 1.9.4.0 já os implementou de qualquer maneira.

Ricardo Martins
fonte
1
Essas postagens de pilha são especificamente para que outros desenvolvedores possam estar cientes dos problemas que sua resposta não é útil ou descritiva sobre qualquer problema. Eu honestamente removeria isso.
Danmentzer 13/12/19