Является ли использование команд оболочки из плохой практики PHP / CGI?

Являются ли командами оболочки считающимися законным программным интерфейсом? В частности, что-то не так с выполнением команд оболочки bash на сервере приложений linux с PHP-страниц или файлов CGI? Означает ли это вопрос эффективности или безопасности?

благодаря

Иногда хорошо, но …


Иногда это лучший способ решить проблему.

Но возможны следующие проблемы:

Безопасность

Следите за введением кода, если вы не выполняете проверку taint .

Представление

Выполнение команд оболочки будет включать в себя интерпретацию PHP-интерпретатора и выполнение сложных и относительно медленных системных вызовов . Это нормально для легко загружаемого сервера, но не будет работать для загруженного сайта.

синхронизация

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

Если безопасное приложение и сервер, нет.