在PHP exec命令中使用的密码存储在哪里


Where is the password stored when used in PHP exec command?

我的php网页在服务器上运行一个命令:

exec("encrypt -pPassw0rd infile outfile; rm infile");

服务器是linux。

刚刚运行了a:

grep -R "Passw0rd" /

这是否足以检查密码是否未存储在任何地方?

这里的重点是,来自用户的输入,无论上下文如何,都不应该被信任!

为了对抗这些类型的攻击,PHP提供了两个函数escapeshellarg()和escapeshellcmd()。

escapeshellarg()函数旨在删除或消除从用户输入接收到的任何潜在有害字符,这些字符用作系统命令(在本例中是zip命令)的参数。这个函数的语法如下:

escapeshellcmd()与其对应的字符类似,除了它只转义对底层操作系统有特殊意义的字符。与escapeshelllong()不同,escapeshellmd()不会处理包含空格的输入。

如果用户输入将被用作系统调用的参数列表的一部分,escapeshellarg()函数总是更好的选择。

希望对你有帮助。

法比奥@fcerullo