Безопасно ли добавлять /usr/bin в open_basedir?

Случай со взломом пару месяцев назад научил меня важности использования open_basedir на сайтах PHP. Но теперь мне нужно заставить ImageMagick работать на сайте Drupal, и я получаю сообщение об ошибке, в котором говорится, что он не может получить доступ к / usr / bin / convert из-за open_basedir. / usr / bin и все в нем доступно для записи только root, но там много скриптов, и предоставление доступа ко всем сайтам меня беспокоит.

2 ответа

Решение

Нет, добавлять / usr / bin в open_basedir небезопасно. Как только злоумышленник сможет выполнить произвольный код PHP, он сможет выполнить любую команду в / usr / bin.

Чтобы ограничить область атаки, вы можете создать каталог bin в open_basedir и создать ссылку для конвертации в него. Убедитесь, что он не находится в вашем веб-корне.

Очевидно, мы не знаем подробностей взлома, но для того, чтобы использовать что-то, что могло бы быть предотвращено путем правильной установки open_basedir, существует другая уязвимость в вашей системе. Но это не относится к делу.

Есть много способов решить эту проблему - разрешить PHP-скрипту ограниченный доступ к соответствующим двоичным файлам / настроить разрешения, чтобы вы могли разрешить доступ к директории, не подвергая множество других вещей (но если ваш imagemagick статически не связан, то вы ' Также нужно открыть libs). Проблема заключается в том, что они полагаются на византийские модели разрешений, которые, вероятно, будут вытеснены обновлениями дистрибутивов.

Если бы это был я, я бы запустил преобразование в полностью независимой группе процессов. То, как вы это сделаете, зависит от того, должен ли ваш PHP-скрипт знать, успешно ли выполнено задание или нет. Если это не нужно знать, то асинхронная очередь сообщений (rabbitMQ, SMTP, связанная с рецептом procmail, или только некоторые записи в базе данных) будет обрабатывать задания с управляемой емкостью. Если требуется подтверждение, запустите демон разветвления, чтобы выполнить преобразование.

Другие вопросы по тегам