Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
清理在PHP中生成os命令的不可信输入?_Php_Url_Code Injection_Inject - Fatal编程技术网

清理在PHP中生成os命令的不可信输入?

清理在PHP中生成os命令的不可信输入?,php,url,code-injection,inject,Php,Url,Code Injection,Inject,如何从php中的url中删除生成os命令的不可信输入 当我运行自动测试zaproxy时,我收到一个P1警报,这是您的输入正在生成os命令。所以我想知道如何清理这些命令。使用escapeshellarg()和escapeshellcmd()来转义数据,以用作shell命令或参数 // escapes a single argument // sample input: "/foo/bar/" $argument = escapeshellarg($userInput1); exec("ls $a

如何从php中的url中删除生成os命令的不可信输入

当我运行自动测试zaproxy时,我收到一个P1警报,这是您的输入正在生成os命令。所以我想知道如何清理这些命令。

使用
escapeshellarg()
escapeshellcmd()
来转义数据,以用作shell命令或参数

// escapes a single argument
// sample input: "/foo/bar/"
$argument = escapeshellarg($userInput1); 
exec("ls $argument");

// escapes all special characters like [];{} for usage in command line
// sample input: "ls -l; rm -rf /"
$command = escapeshellcmd($userInput2);
exec($command);
您应该同时使用这两个命令,以防止用户在服务器上执行任意命令

文件:

使用
escapeshellarg()
escapeshellcmd()
来转义数据,以用作shell命令或参数

// escapes a single argument
// sample input: "/foo/bar/"
$argument = escapeshellarg($userInput1); 
exec("ls $argument");

// escapes all special characters like [];{} for usage in command line
// sample input: "ls -l; rm -rf /"
$command = escapeshellcmd($userInput2);
exec($command);
您应该同时使用这两个命令,以防止用户在服务器上执行任意命令

文件:


此处无需特殊操作。显然,无论如何,您都必须验证和清理从客户端获得的每一位数据。而且您的实现永远不应该允许客户端数据以某种方式在执行流中被使用,从而成为
require
语句或类似语句的参数。此处不需要特殊操作。显然,无论如何,您都必须验证和清理从客户端获得的每一位数据。而且,您的实现永远不应该允许客户端数据以某种方式在执行流中被使用,从而成为
require
语句或类似语句的参数。