【问题标题】:Securely using exec with PHP to run ffmpeg安全地使用 exec 和 PHP 运行 ffmpeg
【发布时间】:2010-11-03 21:00:50
【问题描述】:

我想从 PHP 运行 ffmpeg 以进行视频编码。

我正在考虑使用 exec 或 passthru 命令。但是,我被警告说启用这些功能存在安全风险。用我的支持人员的话来说:

指令“disable_functions”用于禁用任何允许执行系统命令的功能。这是为了提高服务器的安全性。这些PHP函数如果使用不当,可以用来破解服务器。

我猜如果启用了 exec,那么有人可以(可能)执行任意的 unix 命令。有人知道从 PHP 运行 ffmpeg 的安全方法吗?

顺便说一句,我在专用服务器上。提前谢谢!

【问题讨论】:

标签: php security ffmpeg


【解决方案1】:

exec 本身不会带来安全风险,就像您登录安全终端一样。

这样想,如果你要像这样列出目录的内容

exec( 'ls /foo/bar' );

无论您的用户向您的 php 脚本发送什么内容,它只会列出指定的目录。

只要您仔细清理用户的任何输入,并避免输出敏感信息,您应该没问题。

在命令行上运行输入之前,请使用以下方法清理输入:

【讨论】:

  • 谢谢!所以我想我是安全的,因为我正在为 ffmpeg 命令生成自己的输入。
  • @Josiah:我认为你的意思是 exec();不是 eval()。 us2.php.net/manual/en/function.exec.php
  • @Andrew:谢谢,我已经修改了答案。
【解决方案2】:

您可以尝试使用 ffmpeg-php 库...在这里找到:http://sourceforge.net/projects/ffmpeg-php/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    相关资源
    最近更新 更多