Je voudrais patcher une boutique Magento avec SUPEE-9767. La documentation de SUPEE-9767 me dit de désactiver le paramètre Symlinks avant d'appliquer le correctif:
Avant d'appliquer le correctif ou de mettre à niveau vers la dernière version, assurez-vous de désactiver le paramètre Symlinks ... Le paramètre, s'il est activé, remplacera le paramètre du fichier de configuration et sa modification nécessitera une modification directe de la base de données.
Mais j'utilise modman pour gérer les modules et comme certains modules utilisent des fichiers de modèle, le paramètre Symlinks est activé conformément à la suggestion dans le fichier README de modman. Est-il sûr de laisser le paramètre Symlinks activé comme l'un des messages du correctif de sécurité SUPEE-9767 - Problèmes possibles? suggère (je ne peux pas encore commenter les articles car je suis un nouvel utilisateur)?
Les utilisateurs utilisant modman pour gérer les modules Magento 1.x doivent s'assurer qu'ils ne désactivent pas les liens symboliques car cela désactivera les modules modman.
Si je laisse le paramètre Symlinks activé, la boutique ne serait-elle pas exposée à APPSEC-1281: exécution de code à distance via des liens symboliques , une menace de sécurité que ce correctif est censé corriger?
Existe-t-il d'autres façons d'utiliser modman avec des fichiers modèles après ce patch? (Je connais l'option "version corrigée de Mage / Core / Block / Template.php" que le README de modman mentionne, mais patcher un fichier core semble dangereux.)
la source
Réponses:
Voici quelques clarifications concernant ce changement:
Lisez d'abord cette explication de Peter O'Callaghan, cela vous donnera une grande compréhension: https://peterocallaghan.co.uk/2017/06/appsec-1281-dangerous-symlinks/
Une autre lecture intéressante est également cet article de Max Chadwick https://maxchadwick.xyz/blog/what-allow-symlinks-actually-does
Cette modification concerne vraiment l'appel de contenu téléchargeable (comme des images) via des directives de modèle.
Le problème lié aux liens symboliques n'est exploitable qu'avec un accès administrateur et Magento a également ajouté une protection supplémentaire concernant les téléchargements d'images.
Veuillez noter qu'il s'agit de protections contre les moyens connus de l'exploiter en plus du paramètre lui-même.
Donc, si vous comprenez le risque encouru, vous pouvez laisser les liens symboliques activés.
Si vous devez les activer pour une nouvelle installation, vous pouvez exécuter:
la source
Le problème n'est pas les liens symboliques, le problème est les chemins qui atteignent des niveaux tels que
../../../../../media/tmp/hahaha.png
. Si je me trompe, veuillez m'éclairer. Le "correctif" était intitulé "Autoriser les liens symboliques" et l'activer désactive la vérification qui a été implémentée à l'aiderealpath()
. À mon avis, un correctif tout aussi sûr, plus performant et toujours compatible avec les liens symboliques consiste à utiliserstrpos($path, '..')
et / ou à vérifier que lerealpath()
correspond à certains répertoires risqués commemedia
etvar
. S'il est implémenté de cette façon, il n'a pas besoin d'être configurable, il peut toujours être activé et ne pas casser des milliers de magasins.Quoi qu'il en soit, l'utilisateur de votre serveur Web ne devrait pas avoir accès aux fichiers d'écriture dans les répertoires de code source (comme Magento Connect le fait ...), c'est donc une autre façon d'empêcher que du code malveillant soit écrit quelque part et exécuté comme modèle de bloc.
Ainsi, cette attaque sur les liens symboliques est simplement mal dirigée et une meilleure solution existe. En fait, j'en ai fourni un il y a plus d'un an et il y a même un lien vers celui-ci dans le modman github README.
la source
Si, en plus de votre fichier de composition, vous définissez magento-deploystrategy pour copier vos fichiers seront copiés à partir du dossier du fournisseur plutôt que des liens symboliques.
Vous pouvez ensuite modifier votre core_config_data pour définir la valeur de dev / template / allow_symlink sur 0
Ressource pour information
la source
Vous pouvez remplacer les modifications SUPEE-9767 de différentes manières, voir:
Comment activer les liens symboliques après l'installation de SUPEE-9767 V2?
la source