【发布时间】:2011-03-04 17:24:40
【问题描述】:
我在 php 中有一个正在运行的 exec,它执行一个 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 页面上,它说:
当允许将用户提供的数据传递给此函数时,请使用 escapeshellarg() 或 escapeshellcmd() 以确保用户无法欺骗系统执行任意命令。
但在我的情况下,用户输入仅用作应用程序的参数,如果我不检查用户设置的内容,是否存在任何安全风险,除了如果用户输入字符串或浮点数,该程序将不会执行?
【问题讨论】: