Я бы хотел залатать магазин Magento с помощью SUPEE-9767. Документация SUPEE-9767 говорит мне , чтобы отключить Symlinks устанавливающего перед применением патча:
Перед применением исправления или обновлением до последней версии обязательно отключите параметр Symlinks ... Параметр, если он включен, переопределит параметр файла конфигурации, и для его изменения потребуется прямое изменение базы данных.
Но я использую modman для управления модулями, и, поскольку некоторые модули используют файлы шаблонов, настройка Symlinks включена в соответствии с предложением в README modman. Безопасно ли оставлять параметр Symlinks включенным как одну из публикаций в патче безопасности SUPEE-9767 - Возможные проблемы? предлагает (я не могу комментировать посты, так как я новый пользователь)?
Пользователи, использующие modman для управления модулями Magento 1.x, должны убедиться, что они не отключают символические ссылки, поскольку это отключит модули modman.
Если я оставлю параметр Symlinks включенным, разве магазин не будет подвержен APPSEC-1281: удаленное выполнение кода через символические ссылки , угрозу безопасности, которую должен исправить этот патч?
Существуют ли другие способы использования modman с файлами шаблонов после этого патча? (Мне известна опция «исправленная версия Mage / Core / Block / Template.php», о которой упоминает README модмана, но исправление файла ядра кажется опасным.)
источник
Ответы:
Вот некоторые разъяснения относительно этого изменения:
Сначала прочитайте это объяснение от Питера О'Каллагана, это даст вам хорошее понимание: https://peterocallaghan.co.uk/2017/06/appsec-1281-dangerous-symlinks/
Еще одно интересное чтение - это сообщение Макса Чедвика https://maxchadwick.xyz/blog/what-allow-symlinks-actually-does
Эта модификация на самом деле касается вызова загружаемого контента (например, изображений) с помощью шаблонных директив.
Проблема, связанная с символическими ссылками, может быть использована только с правами администратора, и Magento также добавил дополнительную защиту для загрузки изображений.
Обратите внимание, что они являются некоторыми средствами защиты от известного способа его использования в дополнение к самой настройке.
Таким образом, если вы понимаете риск, вы можете оставить символические ссылки включенными.
Если вам нужно включить их для новой установки, вы можете запустить:
источник
Проблема не в символических ссылках, а в проблемах, которые достигают таких уровней, как
../../../../../media/tmp/hahaha.png
. Если я ошибаюсь, пожалуйста, просветите меня. Исправление было названо «Разрешить символические ссылки», и включение этого параметра отключает проверку, которая была реализована с помощьюrealpath()
. По моему мнению, исправление, которое является таким же безопасным, более производительным и совместимым с символическими ссылками, заключается в использованииstrpos($path, '..')
и / или проверкеrealpath()
соответствия определенных рискованных каталогов, таких какmedia
иvar
. Если реализовано таким образом, его не нужно будет настраивать, его всегда можно включить и при этом не разбить тысячи магазинов.Независимо от этого, пользователь вашего веб-сервера не должен иметь доступа для записи файлов в каталогах исходного кода (как это делает Magento Connect ...), так что это еще один способ предотвратить запись вредоносного кода где-либо и выполнение в качестве шаблона блока.
Таким образом, эта атака на символические ссылки просто перенаправлена, и существует лучшее решение. На самом деле, я предоставил один более года назад, и даже есть ссылка на него в modman github README.
источник
Если в дополнительном файле композитора вы задали magento-deploystrategy для копирования ваших файлов, они будут скопированы из папки поставщика, а не из символических ссылок.
Затем вы можете изменить ваш core_config_data, чтобы установить значение dev / template / allow_symlink равным 0
Ресурс для информации
источник
Вы можете отменить изменения SUPEE-9767 по-разному, см .:
Как включить символические ссылки после установки SUPEE-9767 V2?
источник