0

我们想在服务器端生成 mobi 文件。为此,我们需要使用来自 Amazon 的 kindlegen(从 epub 生成 mobi)。我读过启用 exec 并不完全安全,但我的问题是我是否使用类似的东西

exec('kindlegen ' . $epubInput . ' -c0 -o ' . $mobiOutput );

有没有可能出错?这两个变量($epubInput$mobiOutput)不是来自用户输入,它们是由脚本生成的。另一个问题(我想这是不可能的),但是否有一个设置可能允许 exec 只执行一个特定的文件,在我的例子中是 kindlegen?

4

2 回答 2

1

这取决于产生这些值的代码是否可以被欺骗产生邪恶的值。在这种情况下,它确实看起来不像,但你应该确定。

您还应该escapeshellarg在调用之前使用两个参数exec;当值在您的控制之下时,这并不是绝对必要的,但没有理由反对这样做。

于 2012-10-11T08:58:33.303 回答
1

您应该使用escapeshellarg()转义所有参数。这样,您将永远不必担心其他脚本的结果。

于 2012-10-11T09:00:08.157 回答