Является ли использование команд оболочки из PHP/CGI плохой практикой?
Считаются ли команды оболочки законным программным интерфейсом? В частности, есть ли что-то неправильное в выполнении команд оболочки bash на сервере приложений Linux со страниц PHP или файлов CGI? Создает ли это проблемы с эффективностью или безопасностью?
Спасибо
2 answers
Иногда хорошо, но...
Иногда это лучший способ решить проблему.
Но возможны следующие проблемы:
Безопасность
Остерегайтесь внедрение кода если вы не делаете проверка на заражение.
Производительность
Выполнение команд оболочки будет включать раздвоение интерпретатор PHP и его выполнение сложны и относительно медленны системные вызовы. Это нормально для слегка загруженного сервера, но не будет работать для загруженного сайта.
Синхронизация
Обеспечение того, чтобы все происходило в правильном порядке, позволяет избежать хорошо известных проблем, называемых потерянными обновлениями, грязные чтения и неправильные резюме. Хотя команды оболочки сами по себе не являются причиной каких-либо из этих вещей, их асинхронное выполнение может быть, и увеличение сложности вашей системы приведет усложните анализ.
Если защищено приложение и сервер, то нет.