のみ-controller
class Controller_Base extends Controller {
protected $_login = FALSE;
public function before()
{
$this->_login = Session::instance()->get('login', FALSE);
}
}
メンバー-controller
class Auth {
public function login($user, $pass, $random_unique_salt)
{
if ($this->_bcrypt($pass, $random_unique_salt) === 'correct password hash') // etc.
{
// Success...
$session = Session::instance();
$session->set('login', TRUE);
$session->regenerate();
}
}
}
-moduleベース私が見る唯一の脆弱性はCWE-706 - Use of one way has with a predictable saltです。各パスワードには独自の固有の塩が必要です。 bcryptは、GPUやFPGAで効率的に実装することができないため、不正なパスワードハッシュ方式ではありません。
コードのスタイルは少し編集的ですが、悪いことではありません。あなたの比較演算子は少し過剰です。 fuzzy typing in phpを読んで、間違いを未然に防ぐようにしてください。
OTですが、パスワードハッシュ方式では塩を使用していないようです。ハッシュは何を使っていますか?いくつかのプレーンなmd5/sha-x、あるいはbcryptのようなパスワードハッシュ用に設計された関数? – CodesInChaos
これは単なるランダムな例です。そのため、コメントなどがあります。// Bcryptは行く方法です。 – kaulusp
良い:) Btw私は、あなたのタグの1つを "php"タグの方に落とすことをお勧めします。これに答えることができる人の中には、お気に入りのタグとして "php"があるかもしれませんが、あなたのものではありません。 – CodesInChaos