しかしこの場合だとhttp://hacker/fake_login.php でも<from action=" のところを http://hoge/check.php まで指定してしまえばログインできてします。他のサーバーからのデータの送信を拒否するにはどうしたらいいのでしょうか?
リファーラを調べるという方法もありますが、ブラウザの種類やセキュリティソフトなどでリファーラを送信しない場合もあるためNGです。
そのほかの方法で対策できる方法がありましたら教えてください。
まず、http://hoge/login.php にアクセスしたときにセッションIDを発行&記録し、FORMのパラメータに渡し、http://hoge/check.php へアクセスした時に、一定時間内に発行したセッションIDでなかったらエラーにするというのはいかがでしょうか?
もしくは、login.phpにアクセスしてきたIPアドレスとUserAgentを一定時間保存しておき、保存リストの中にcheck.php にアクセスしてきたユーザーなら許可するという方法もありますね
これらの方法なら、ブラウザに依存しないで処理することができると思います
http://www.atmarkit.co.jp/fsecurity/rensai/webhole03/webhole...
コメント(0件)