トップ > ラボブログ

ラボブログ

« CakePHP でバージョンを調べるには | メイン | phpmyadmin 3.x.x を使うのに PHP 5.2+ が必要と言われるときは »

CakePHP で Security.level の high 設定について

あとで読む

スパイスラボ神部です。


なんだか CakePHP で認証なりセッションなりで悩まされるとき、原因をたどっていくと結構 core.php の Security 設定を high にしていることが原因だったりすることがあるので不思議に思っていたのですが、隙を見て akiyan さんにちらっと聞いてみたらやっぱり『Security.level::high はできない子』らしいので、いい機会だと思ってここにまとめてみます。


-セキュリティが好きだ! - Favorites!


Security.level が high のときに起きるいろいろなこと


-CakePHPの Security.levelとセッション - あぁ そうだった


Security.levelがhighに設定されていると、セッション「ID」は毎回生成されるのがCakePHPの仕様。


モバイルサイトを作成するときには要注意ですね。大元をたどれば CookBook にも書かれています。


-CakePHPコアの環境設定変数 :: Configurationクラス :: 環境設定 :: CakePHPによる開発 :: マニュアル :: 1.2 Collection :: The Cookbook


CakePHP のセキュリティレベルを設定します。'Session.timeout' で設定されたセッションタイムアウトの基本時間に、この設定による値をかけたものが最終的な値になります。
有効な値:
'high' = x 10
'medium' = x 100
'low' = x 300

'high' と 'middle' は、両方とも session.referer_check が有効になります。

'Security.level' が 'high' にセットされていた場合、 CakePHP のセッション ID はリクエストごとに再生成されます。。


-cronos feed 2.0::Security.level='high'はあんまよくない?


-CakePHPのcore.phpの設定を勉強!! - 子だぬきの技術習得ノート


セッション時間と共にここの設定で、何処までセッションを保持しているか決まります。
highの場合=CAKEPHPの内部まで
middleの場合=同一ドメインの内部まで
lowの場合=仮想ドメインなどの違うドメインでも保持しています


-3流プログラマのメモ書き : (CakePHP)携帯電話でもセッションを使えるようにする


また、Security.levelをmidiumにするとセッションタイムアウトの時間がSession.timeout*100秒になってしまいます。デフォルトの120だと 120秒*100/60=200分ということで、3時間半にもなってしまうので値を小さくします。


middle のときは middle で問題があるようですね。


-CakePHP Security コンポーネントのまとめ | Sun Limited Mt.


ブラックホールメソッドなんていうのがあるらしい。ほかにも細かな使いこなし方法が載っています。


個人的な経験より


個人的には、CakePHP で AuthComponent を使っていると、ブックマークレットからサイトにアクセスしたときになぜからリダイレクトが繰り替えされてしまって困りました。こうしてまとめてみると、ブックマークレットから起動->セッション切断->自動ログインする->でもリファラが違うドメイン(ブックマークレットからだから)なのでセッション切断->自動ログインする みたいなことになっていたのかもしれません(※その証拠に同一ドメインのページを Bookmarklet で呼び出すとこのような問題は起きませんでした)。


この場合も、Security.level を middle にしたところで解決しました。このあたりのお話はレアかもしれませんが、AuthComponent を利用するときなどには忘れずに頭に入れておきたいところです。


というか、もう medium がデフォルトでもいいのかも。


なにか理解に違いがあれば、ツッコミをお願いします。


-CakePHPガイドブックが好き! - ILOVEIT(β)
 



関連記事



ブックマークに追加する この記事についてTwitterでツイート

トラックバック

このエントリーのトラックバックURL:
http://www.spicebox.jp/cgi-bin/mt/mt-tb.cgi/1071

この一覧は、次のエントリーを参照しています: CakePHP で Security.level の high 設定について :

» AuthComponentでセッション切れが発生する 送信元 あんじーのテクニカルブログ
CakePHPのアプリケーションでAuthコンポーネントを利用して認証システムを... [詳しくはこちら]

コメント ( 1 )

一応、こちらを紹介しておきます。http://d.hatena.ne.jp/ockeghem/20090515
デフォルト(Security.level="high")では、session_regenerate_id()がかかっています。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

mixiアプリ本
4/22発売!

mixiアプリをつくろう!
OpenSocialで学ぶ
ソーシャルアプリ



(株)スパイスボックス
神部 竜二(著)

書籍情報






検索



神部竜二
ブログ執筆者の一人です。ネットの新しい話題や Web まわりのプログラミング、Web 広告について書いていきたいと思います。


About

2009年05月28日 23:29 に投稿されたエントリーのページです。

ひとつ前の投稿は「 CakePHP でバージョンを調べるには 」です。

次の投稿は「 phpmyadmin 3.x.x を使うのに PHP 5.2+ が必要と言われるときは 」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

SEO ブログパーツ  

+ インデックス数計測 +