【问题标题】:Is using shell commands from PHP/CGI bad practice?使用来自 PHP/CGI 的 shell 命令是不好的做法吗?
【发布时间】:2011-05-30 23:16:21
【问题描述】:

shell 命令是否被认为是合法的编程接口?具体来说,从 PHP 页面或 CGI 文件在 linux 应用服务器上执行 bash shell 命令有什么问题吗?这会带来效率或安全问题吗?

谢谢

【问题讨论】:

  • 有两种人。使用工具的人和询问工具是否合法的人
  • 匿名的密切选民是 SO 的祸根……请自行解释!

标签: php linux bash shell shell-exec


【解决方案1】:

如果应用程序和服务器安全,则否。

【讨论】:

    【解决方案2】:

    有时还可以,但是...


    有时这是解决问题的最佳方式。

    但可能的问题是:

    安全

    如果您不使用taint checking,请注意code injection

    性能

    运行 shell 命令将涉及forking PHP 解释器并执行复杂且相对较慢的system calls. 这对于负载较轻的服务器是可以的,但不适用于繁忙的站点。

    同步

    确保事情以正确的顺序发生可以避免众所周知的问题,即丢失更新脏读不正确的摘要。虽然 shell 命令本身并不是导致这些事情的原因,但异步运行它们可能会导致,并且增加系统的复杂性会使分析变得更加困难。

    【讨论】:

    • 当然。用丑陋的 GD 处理图像就可以了,用 swift external imagemagick 会很慢,哈哈
    • 从内存使用的角度来看,使用外部 ImageMagick 也可能会更好,因为在内部处理图像会爆炸 Web 服务器的内存占用,事实上,我已经看到了这种情况。我确实说过“有时这是解决问题的最佳方式”。
    • 另一个例子是ffmpeg,不知道没有shell如何生存
    • 这里有好处-谢谢。在这种情况下,我可以去哪里了解有关污点检查的更多信息?
    • 在 ImageMagick 的情况下,调用命令行版本也可能是必要,因为并非各种命令的所有功能实际上都适用于所有语言。
    猜你喜欢
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    相关资源
    最近更新 更多