SyntaxHighlighter

2014年2月14日金曜日

CakePHPでログインしようとしているユーザー名をとるよ

ログイン画面の総当たり攻撃対策で、ログイン失敗時に遅延処理を入れる、と。

なんかPHP 5.5からはpassword_hash()という関数が用意されて、ソルトやらストレッチやらでより強固な運用ができるみたいだけど、今回オレが相手にしているのはPHP5.3.3だ。だからだめっぽい。

ログイン失敗したらサーバ側で3秒スリープでもいいかなーって気もするんだが、ログイン試行回数でだんだん遅くしてよ!みたいなことを言ってくるめんどくさい意識の高い人の要求を満たさなきゃならん場合もあるわけで。

仕方がないんで、DBに試行されたログイン名とそれに対応する試行回数を記憶させるっつーやり方を。

で、

ここまでCakePHPのテンプレート任せなログインをしてきたのだが、ちょっと手をいれる必要があるわけだ。

とりあえずUserControllerのloginメソッドに処理書くかーと思って改めて見直すとログイン使用としてるユーザー名をどうやってとったらいいのかわからん。

結論としては、




で取れる、と。ググってもパッとは出てこなかった。きっと超基本的なことなんだろうな。

お陰で$this->Auth->login()を少し追ってみるという経験ができたわけだ。


しかし、総当たり攻撃対策なんてフレームワークとかプラグインでもっと簡単にできるのかと思ってたけど、まだ発展の余地ありなんですかね。こんなのでDBテーブル増やしたり50行ぐらい増やすのやだなあなんて思ったり。

0 件のコメント:

コメントを投稿