gpt4 book ai didi

java - PHP - 使用 Exec 执行带有用户定义参数的 Jar 文件

转载 作者:行者123 更新时间:2023-11-30 09:50:20 25 4
gpt4 key购买 nike

我在 php 中有一个工作执行程序,它执行一个 Jar 文件并返回结果:

exec('java -jar Clt.jar ' . $sampleSize . ' ' . $numberOfSamples . ' ' . $randAlgorithm,  $output);

这些参数在 Java 应用程序中以下列方式检查:

int sampleSize = Integer.parseInt(args[0]);
int numberOfSamples = Integer.parseInt(args[1]);
int randGenerator = Integer.parseInt(args[2]);

现在我需要知道是否需要检查用户输入,因为在 exec 下的 PHP 页面上,它说:

When allowing user-supplied data to be passed to this function, use escapeshellarg() or escapeshellcmd() to ensure that users cannot trick the system into executing arbitrary commands.

但在我的情况下,用户输入仅用作应用程序的参数,是否存在任何安全风险如果我不检查用户设置的内容,除了如果用户输入字符串或 float 该程序将不会执行之外?

最佳答案

但在我的例子中,用户输入仅用作应用程序的参数

这就是你错的地方。 exec() 就像您在命令行上执行一行一样。如果用户输入如下内容怎么办: ; rm -rf/&& 回显。您必须使用 escapeshellargs() 对输入进行转义。或者在将它传递给命令行之前使用 floatval() 更好。

关于java - PHP - 使用 Exec 执行带有用户定义参数的 Jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5197104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com