Après cette nouvelle mise à jour (1.9.4.1), Mage :: log () ne fonctionne pas. Apparemment, cela a quelque chose à voir avec la Zend_Validate_File_Extension
ligne 819 de Mage.php où il vérifie si le fichier is_readable()
avant même qu'il existe. J'ai inversé toute la log()
méthode à sa version précédente et cela fonctionne à nouveau.
Quel est le canal principal avec lequel je peux contacter l'équipe Magento pour signaler ce problème?
magento-1.9
log
bug
magento-1.9.4.1
rodrigoriome
la source
la source
Réponses:
Patch officiel entrant :)Toujours en attente du patch officiel ... :(Source: https://github.com/OpenMage/magento-lts/pull/648#issuecomment-480941871
la source
Je vais résumer tout ce que j'ai trouvé jusqu'à présent, basé sur la recherche et l'interaction avec Magento et Slack en ce qui concerne les correctifs avec SUPEE-11086. Ce qui peut être fait:
MISE À JOUR 2: Le problème est résolu dans le prochain PATCH SUPEE-11155 - https://magento.com/security/patches/supee-11155 . Comme toujours avant d'appliquer la vérification des correctifs pour le fil des problèmes possibles - Patch de sécurité SUPEE-11155 - Problèmes possibles? Merci à Aad Mathijssen pour son excellent commentaire.
Mise à jour: Un patch officiel est disponible sur demande pour la version EE. Fondamentalement, c'est l'essentiel de Piotr Kaminski enveloppé sous forme de fichier patch Magento.
app/Mage.php
dans le fichier de patch. C'est ce que j'ai fait jusqu'à présent.Avantages - la journalisation fonctionne comme auparavant.
Inconvénients - en éditant un fichier patch, la journalisation n'est pas protégée contre un éventuel exploit (mais cela devrait présenter un risque très faible). Lorsque Magento publiera un correctif officiel, vous devrez le rétablir et appliquer le correctif original non modifié.
Pour - C'est la manière Magento
Contre - Vous devrez attendre que cela devienne officiel, ou prendre la responsabilité et le conditionner en tant que patch vous-même, ce qui vous ramènera à devoir revenir une fois qu'un patch officiel est en place.
Une légère variation serait au lieu d'ajouter deux patchs pour éditer l'original avec ces changements.
Zend_Validate_File_Extension::isValid
et supprimer la validation d'existence de fichier. il y a une longue discussion dans Magento LTS github - https://github.com/OpenMage/magento-lts/pull/648 . LaisValid
méthode fait des choses qu'elle ne devrait pas faire, donc certains membres proposent de la corriger. Mon avis est que ce n'est pas une bonne solution, oui le code est mauvais, mais il était là pour toujours et peut être utilisé dans des modules / codes personnalisés. Au contraire, le pire qui puisse arriver est que les fichiers ne soient pas vérifiés.Pour - une solution plutôt simple
Contre - modifie un fichier de bibliothèque et modifie sa fonctionnalité.
Vous pouvez l'appliquer sous forme de correctif personnalisé ou en réécrivant toute la classe dans le
local
pool de codes.J'ai choisi d'éditer le patch, et quand une v1.1 arrivera, je reviendrai sur le patch édité et appliquerai la version originale et après ce correctif. Cela convient bien à notre processus de construction et à notre politique interne, cela pourrait être différent pour vous. Peu importe ce que vous avez choisi, il vaut mieux appliquer ce patch plus tôt que tard.
la source
Quelque chose des contributions de la communauté. Il y a un nouveau validateur est utilisé Zend_Validate_File_Extension comme ci-dessous:
https://github.com/brentwpeterson/magento-patches/blob/master/CE1.9/PATCH_SUPEE-11086_CE_1.9.4.0_v1-2019-03-26-03-05-04.sh#L183
"La solution consiste à modifier le correctif et à supprimer les modifications de app / Mage.php, je déconseille fortement cette pratique, mais la situation est critique".
la source
Ma solution temporaire a été de copier
lib/Zend/Validate/File/Extension.php
àapp/code/local/Zend/Validate/File/Extension.php
et retirer cette partie du code de laisValid()
méthode:Cela deviendrait ...
Lorsque Magento 1.9.4.2 est sorti, je vérifie à nouveau.
En fait, le fichier n'est pas lisible ou n'existe pas, cela ne signifie pas que le nom du fichier n'est pas valide, non?
la source
Je suggère de ne pas modifier le code principal et d'utiliser une mise à jour comme celle-ci ( https://gist.github.com/mehdichaouch/99c67298b5a65f81219c9b69942b6fe7 )
la source
Il existe un autre problème (qui peut être délibéré de la part de l'équipe Magento) qui empêche la possibilité d'écrire des fichiers journaux dans des sous-dossiers. Par exemple:
Dans les versions antérieures, cet appel aurait créé un fichier à l'emplacement:
/your-magento-app-root-folder/var/log/somefolder/anotherfolder/somelogfile.log
Mais puisqu'il y a un
basename()
appel de fonction dans laMage::log()
méthode, le fichier est écrit à:/your-magento-app-root-folder/var/log/somelogfile.log
.Voici le code incriminé dans
app/Mage.php
:Même s'il n'est pas spécialement lié à 1.9.4.1, le problème a commencé à se produire récemment (autour des dernières versions 1.9.3.x) et est très ennuyeux lorsque vous devez gérer un grand nombre de fichiers journaux, parfois avec le même nom ( mais initialement dans différents sous-dossiers).
Comme ce morceau de code est probablement délibéré de la part de l'équipe Magento, je pense qu'il n'est pas prévu de le corriger dans une version ultérieure, ce qui implique de le pirater pour restaurer le comportement initial ...
la source