我们想在服务器端生成mobi文件。为此,我们需要使用亚马逊的kindlegen(从epub生成mobi )。我读到启用exec并不是完全安全的,但我的问题是如果我使用像这样的东西
exec('kindlegen ' . $epubInput . ' -c0 -o ' . $mobiOutput );有没有可能出差错?两个变量($epubInput和$mobiOutput)不是来自用户输入,它们是由脚本生成的。另一个问题(我猜这是不可能的),但是有没有一个可能的设置,允许exec只执行一个特定的文件,在我的例子中是kindlegen?
发布于 2012-10-11 16:58:33
这取决于生成这些值的代码是否会被诱使生成恶意值。在这种情况下,它看起来真的不像它,但您应该确定。
在调用exec之前,您还应该在两个参数上使用escapeshellarg;当值在您的控制之下时,这并不是绝对必要的,但是没有理由反对这样做。
发布于 2012-10-11 17:00:08
您应该使用escapeshellarg()对所有参数进行转义。这样你就不必担心其他脚本的结果了。
https://stackoverflow.com/questions/12835788
复制相似问题