使用 php 安全使用 exec
Safe use exec with php
如何使用 php
的安全执行程序
我正在尝试像这样使用 exec 执行命令:
exec("ejabberdctl register ". $_POST['username'] ." ". $_POST['password'])
在此命令中,如果有人在密码中使用类似这样的东西
& free -m
&& free -m
;free -m
或
123456 & rm -rf /root
123456 ; rm -rf /root
.....等等
我怎样才能阻止 & 和 ;还有如果密码 --> (&&&&&&&&&......) 或 --> (;;;;;;;)
关于安全使用 exec 有什么想法吗?
使用escapeshellarg()
。它确保该值被解释为一个单一的、普通的 shell 参数。因此,即使您将命令作为参数传递,它也不会执行。
$arg = $_POST['username'] ." ". $_POST['password'];
exec("ejabberdctl register ".escapeshellarg($arg));
如何使用 php
的安全执行程序我正在尝试像这样使用 exec 执行命令:
exec("ejabberdctl register ". $_POST['username'] ." ". $_POST['password'])
在此命令中,如果有人在密码中使用类似这样的东西
& free -m
&& free -m
;free -m
或
123456 & rm -rf /root
123456 ; rm -rf /root
.....等等
我怎样才能阻止 & 和 ;还有如果密码 --> (&&&&&&&&&......) 或 --> (;;;;;;;)
关于安全使用 exec 有什么想法吗?
使用escapeshellarg()
。它确保该值被解释为一个单一的、普通的 shell 参数。因此,即使您将命令作为参数传递,它也不会执行。
$arg = $_POST['username'] ." ". $_POST['password'];
exec("ejabberdctl register ".escapeshellarg($arg));