アカウントロック
- ロック頻度は10回程度 (3回は少なすぎ)
- 30分経過で自動的に最有効化
ソルト
- ある程度の長さを確保 (パスワード+ソルトで最低20文字)
- ユーザ毎に異なるものにする
ストレッチング
- ハッシュ計算を繰り返し行う & 遅いハッシュ関数を用いる
PHP(5.5.0以降)でのライブラリ利用
ハッシュ値生成
$hash = password_hash($password, PASSWORD_DEFAULT);
(結果にソルトやストレッチ回数が含まれる)
パスワード検証
$result = password_verify($password, $hash);