使用PHP安全地运行ffmpeg的exec命令

3
我希望通过PHP运行FFmpeg进行视频编码。
我考虑使用exec或passthru命令。但是,我已经被警告启用这些功能会存在安全风险。以支持人员的话来说:
“disable_functions”指令用于禁用任何允许执行系统命令的函数。这是为了更好地保护服务器安全。如果不正确使用这些PHP函数,它们可以用于破解服务器。”
我猜想,如果启用exec,则有人可能会执行任意Unix命令。有没有人知道从PHP安全运行FFmpeg的方法?
顺便说一下,我使用的是专用服务器。提前谢谢!

请查看我的问题:http://stackoverflow.com/questions/4173405/convert-using-ffmpeg-without-exec 在评论中有一种方法可以做到这一点,即重新编码php库并添加一些内容。 - Rami Dabain
2个回答

7

exec 不会比您登录安全终端更加危险。

可以这样想,如果您像下面这样列出目录的内容:

exec( 'ls /foo/bar' );

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

只要您小心地对用户输入进行消毒,并避免输出敏感信息,就应该没问题。

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


谢谢!所以我想我是安全的,因为我正在生成自己的输入到ffmpeg命令。 - Venkat D.
1
@Josiah:我想你是指exec()而不是eval()。http://us2.php.net/manual/zh/function.exec.php - Andrew Ensley
@Andrew:谢谢,我已经修改了答案。 - Josiah

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接