使用PHP安全地使用exec来运行ffmpeg

时间:2009-06-18 02:44:07

标签: php security ffmpeg

我想从PHP运行ffmpeg用于视频编码。

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

  

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

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

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

2 个答案:

答案 0 :(得分:7)

exec本身不会比登录安全终端带来安全风险。

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

exec( 'ls /foo/bar' );

用户发送到您的php脚本无关紧要,它只会列出指定的目录。

只要您小心清理用户的任何输入,并且不要输出敏感信息,您就可以了。

在命令行上运行输入之前,请使用以下方法对输入进行整形:

答案 1 :(得分:0)

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