私は次のコードを持っています:
$salt=uniqid(mt_rand(), false);
#Add data to tables
mysql_query("INSERT INTO accounts VALUES('$user', '".hash('sha512',$pass+$salt)."', '$salt', '$cookie_value')");
mysql_query("INSERT INTO passwordreset VALUES('$user', NULL, NULL)");
#cookie creation
#.....
#cookie update
mysql_query("UPDATE accounts SET cookie='$cookie_value' WHERE user='$user'");
これらの関数を使用して、フォームからデータをサニタイズします。
$var = htmlentities($var, ENT_QUOTES, "UTF-8");
return mysql_real_escape_string($var);
今日、phpMyAdmin にログインしたところ、すべてのユーザーのパスワードとソルトが同じであることがわかりました。非推奨の mysql_* について思い出させないでください。私はそれを知っています。それは簡単なドラフトです。