我有一个PHP页面,允许人们运行htpasswd来更新他们的密码。最好的方法是如何对他们的输入进行清洗。我不想太过限制输入,因为我想允许使用安全的密码。这是我的代码。如何改进呢?
$newPasswd = preg_replace('/[^a-z0-9~!()_+=[]{}<>.\\\/?:@#$%^&*]/is', '', $inputPasswd);
$cmdline = $htpasswd . " " . $passwd_file . " " . escapeshellarg($username) . " " .escapeshellarg($newpasswd);
exec( $cmdline, $output, $return_var );