Bir PHP şifre dize sterilize

2 Cevap php

Ben insanların şifrenizi güncellemek için htpasswd sayfasına çalışmasına olanak sağlayan bir PHP sayfası var. Ne onların girdiyi en iyi yoldur. Ben güvenli şifreler için izin vermek istiyorum çünkü ben çok için giriş kısıtlamak istemiyorum. Bu benim ne var. Nasıl geliştirilebilir?

$newPasswd = preg_replace('/[^a-z0-9~!()_+=[]{}<>.\\\/?:@#$%^&*]/is', '', $inputPasswd);
$cmdline = $htpasswd . " " . $passwd_file . " " . escapeshellarg($username) . " " .escapeshellarg($newpasswd);
exec( $cmdline, $output, $return_var );

2 Cevap

ecscapeshellarg fonksiyonu PHP için dahili ve hiçbir "güvenli olmayan" karakterler exec geçti böylece metni sterilize kabuk tabanlı sistemleri arasında değişmektedir.

http://us2.php.net/manual/en/function.escapeshellarg.php

Ben o kullanıcı o şeye şifre değişti inanıyorum yapacak beri, "tehlikeli karakter" boş dize ile preg_replace kullanmak, ancak başka exec şey .. Yani kullanıcı o içeri koymak farklı bir şey için şifre koymak olacak olmaz .. Bazı karakterler (tercihen kusurlu karakterleri yakalamak ve göstermek) doğrulama yoluyla geçemedi onu söylüyorum kullanıcıya geri bildirim vermek için daha iyi olurdu.

Bunun dışında, ben oldukça iyi görünüyor düşünüyorum. Ben mümkün karakterin geniş bir yelpazesi ile kullanıcıya sunar düşünüyorum ve o güvenli bir parola oluşturmak için daha fazla ihtiyaç duymaz. Ayrıca o tahmin etmek zorunda değildir bu yüzden şifre izin karakterler kullanıcı anlatmak için yararlı olabilir.