清理在PHP中生成os命令的不可信输入?
如何从php中的url中删除生成os命令的不可信输入 当我运行自动测试zaproxy时,我收到一个P1警报,这是您的输入正在生成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
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
语句或类似语句的参数。