htpasswd를 실행하여 암호를 업데이트 할 수있는 PHP 페이지가 있습니다. 그들의 의견을 가장 잘 살릴 수있는 방법은 무엇입니까? 보안 암호를 허용하기 위해 입력을 많이 제한하고 싶지 않습니다. 이것이 내가 가진 것입니다. 어떻게 개선 될 수 있습니까?PHP 암호 문자열을 살균하십시오
$newPasswd = preg_replace('/[^a-z0-9~!()_+=[]{}<>.\\\/?:@#$%^&*]/is', '', $inputPasswd);
$cmdline = $htpasswd . " " . $passwd_file . " " . escapeshellarg($username) . " " .escapeshellarg($newpasswd);
exec($cmdline, $output, $return_var);
escapeshellarg를 사용하면 불량 문자 제거를 신경 쓰지 않아도됩니까? – JonDrnek
Escapeshellarg는 쉘이 해석 할 수있는 모든 것을 제거합니다. (또는 예를 들어 '=> \'와 같이 변경하십시오.) htpasswd에 익숙하지 않지만 쉘 인젝션 공격을 막을 수 있습니다. – MiffTheFox