【PHP】フレームワークについて語るスレ12【総合】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/12/23(火) 00:36:15ID:???●国外産●
symfony
ttp://www.symfony-project.com/
code igniter
ttp://codeigniter.com/
Zend Framework
ttp://framework.zend.com/manual/ja/index.html
CakePHP
ttp://www.cakephp.org/
Yii Framework ←New!! (Dec 03, 2008)
ttp://www.yiiframework.com/
●国産
ちいたん
ttp://php.cheetan.net/
Ethna
ttp://ethna.jp/
guesswork
ttp://classic.guesswork.jp/
maple
ttp://kunit.jp/maple/
●前スレ
【PHP】フレームワークについて語るスレ10【総合】 ※実質11
http://pc11.2ch.net/test/read.cgi/php/1219581817/
0263nobodyさん
2009/01/31(土) 07:40:31ID:???おまいさんの理解が浅いということだけはわかった。
何も書かないと単なる煽りと思われるので一つだけ例示すると、
> もし、非セキュアサイトでのセッションIDに関連付けられていたら、そのセッションIDを
> 盗聴して使えば、他人がセッションの情報を取得することが可能になる。
それは実装が甘いだけ。
非セキュアサイトに関連付けられたセッションIDを使いまわしたとしても、
たとえば、
「セキュアな情報を表示するためのトークンを持っていなければ表示しない」
という基本的なロジックでラップしてあればセキュアな情報を見ることはできない。
情報のキーになるのはセッションIDだけじゃない。普通にクッキー使うだろ。
0264nobodyさん
2009/01/31(土) 11:43:58ID:???それって一般にはセッションIDって呼ぶと思うの。
0265nobodyさん
2009/01/31(土) 11:53:41ID:???0266nobodyさん
2009/01/31(土) 12:16:29ID:???・SSL下でログインに成功したら、トークン($uniq)を育成
・非セキュアなセッションでもいよいので$_SESSION['tokens'][] = sha1($uniq);
・$uniqをsecure属性をつけて、setcookie
・セキュアサイト内では、sha1($_COOKIE['uniq'])がセッションtokensに含まれるか検証。だめなら再認証に飛ばす
すくなくとも$uniqをセッションIDとは言わない。
0267nobodyさん
2009/01/31(土) 12:29:26ID:???で、これが有効な手段として、ここまでをライブラリ化して標準装備した
フレームワークは無いのか?無いとしたらどんな問題があるのってところで
やっと>>185,188の質問に戻るわけだし、このスレでの話題になるわけだな。
まあそれに関する議論?もちょろちょろあるが。
おれとしては、添付ライブラリとしてはあってもいいと思うな。くだらんヘルパーを
ごちょごちょつけてるんだから、ついでに。
0268nobodyさん
2009/01/31(土) 12:48:08ID:???0269nobodyさん
2009/01/31(土) 12:55:21ID:???投票が集まればサクッと作るでしょ。
0274nobodyさん
2009/01/31(土) 15:30:40ID:???たまにこういうことがあるから面白い
0277nobodyさん
2009/01/31(土) 15:55:18ID:???> なんで、1行で済む処理をライブラリかしたがるのか、いまだに疑問
それは、君が説明した事からも分かるように、実装の説明をする余地があるからだよ。
そしてこれは汎用的に使える処理であり、ビジネスロジックではない。
ビジネスロジックに集中できるようにしてくれるのがフレームワークのよいところ。
0278nobodyさん
2009/01/31(土) 16:03:23ID:???インフラの扱いやサイトのセキュリティポリシーや集金ロジックに密接に関係する。
0281nobodyさん
2009/01/31(土) 16:45:58ID:???ヒントやるから実装は自分でやれな。
SSL_Login_Class
セキュアにするべきページの一覧や正規表現を設定配列に入れておく。
全てのコントローラのアクション実行前に、セキュアにするべきか一覧に入っているか調べる。
セキュアページにhttpでアクセスしていたら、httpsにリダイレクト
セキュアトークンを持っていなければ、ログインページにリダイレクト
ログインが許可されればセキュアトークンをセット(secure属性を負荷したクッキーを発行)し元のページに戻す。
ログインページはデフォで用意するがカスタマイズ可能。要するにscaffold(土台)
セキュアトークンのサーバー側のデータは、セッションでも独自のファイルやデータベースにも格納可能。
ハッシュはsha1でもそれ以外でも選択可能。
以上のことをやってくれるクラス。
使い方は簡単。CakePHP風に言えば共通のコントローラAppControllerの
componentsに上記のクラスを入れるだけ。これとセキュアページのリストさえあれば
具体的な実装を書かなくてすむ。
0282nobodyさん
2009/01/31(土) 16:52:07ID:???日本語の蘊蓄はいらないから、汎用的にするためのインターフェースでも示してくれ。
0284nobodyさん
2009/01/31(土) 17:13:02ID:???>>266に書いてあるのは、セキュアなサイトを作る時のHelloWorld
実サイトでは、Yahooにしろamazonでも楽天でも>>266とは別のロジック。
そういうロジックを設定でインジェクションできないなら汎用的とは言わない。
0285nobodyさん
2009/01/31(土) 17:15:21ID:???>>281のはロジックの一つだよ。
別のロジックを使いたければ、別のロジックを実装したクラスを
AppControllerのcomponentsに設定すればいいだけ。
これで汎用的になりましたね(笑)
0286nobodyさん
2009/01/31(土) 17:18:05ID:???0287nobodyさん
2009/01/31(土) 17:20:51ID:???0288nobodyさん
2009/01/31(土) 17:22:06ID:???本当に十分なのか? FWが持っている認証クラスが
このようなロジックになっているのか?
>>266のロジックなのか? それともYahoo、Amazon、楽天のロジックのなのか?
それが、そもそもの>>185,188の質問だろうが。
> フレームワークのSSL対応ってどうなっているのでしょうか?
それで答えは?
0289nobodyさん
2009/01/31(土) 17:24:30ID:???結局、>>281に書いたクラスで、何かサービスを実装しようと思ったら、その
ロジックを実装したクラスを設定するわけだろ。
それなら、FWが持ってる認証クラスのアサーションにそのロジックを指定するだけ。
>> フレームワークのSSL対応ってどうなっているのでしょうか?
> それで答えは?
対応する必要なし。
0290nobodyさん
2009/01/31(土) 17:26:44ID:???> それなら、FWが持ってる認証クラスのアサーションにそのロジックを指定するだけ。
そのロジックをお前は毎回作るのか?
そのロジックは使いまわし出来るだろ?
それを汎用的という。
0292nobodyさん
2009/01/31(土) 17:28:05ID:???考え方がおかしいね。 >>281のクラスを使ってサービスを実装するんじゃない。
なにかのサービスを実装したとき、>>281のクラスを利用する。
考え方が逆だよ。
0294nobodyさん
2009/01/31(土) 17:29:28ID:???元はといえば、お前さんの書いたクラスのサンプルが汎用的じゃないわけだろ。
ロジックはサイトの管理ポリシーによって違うでしょ。
それをカバーできるようは汎用的な設計を示してから言ってくれ。
0297nobodyさん
2009/01/31(土) 17:32:13ID:???お前はロジックという言葉の使い方がおかしい。
管理ポリシーは違っても、それを実装するロジック(数パターンある)は同じ。
ロジックと管理ポリシーは違うもの。
0299nobodyさん
2009/01/31(土) 17:38:04ID:???あのなぁ。お前、コンクリートと汎用的とは別の考え方だよ。
GUIの例で言えば分かるだろ。
テキストボックスはコンクリートクラスであるが、
汎用的に使われるパーツだ。
抽象クラスと汎用的つ使えるクラスをごっちゃにするなよ。
0301nobodyさん
2009/01/31(土) 17:42:09ID:???0302nobodyさん
2009/01/31(土) 17:42:45ID:???いや常識(笑)
汎用的なパーツは、一つのパーツを複数のサイトで使える物。
それ以外の意味なんて無いだろw
まさか今まで抽象クラスの話をしていたのか。驚きだw
0303nobodyさん
2009/01/31(土) 17:48:13ID:???この質問をしたのは正しかった。 ↓
> 282 :nobodyさん:2009/01/31(土) 16:52:07 ID:???
> それのどこが汎用的なんだよ。個別実装べったりじゃん。
> 日本語の蘊蓄はいらないから、汎用的にするためのインターフェースでも示してくれ。
>
> 283 :nobodyさん:2009/01/31(土) 17:04:17 ID:???
> >>282
> お前にとって汎用的とはどういうことを指す言葉なんだ?
>
> 例を出して説明したまえ。
この質問の時点で抽象クラスのことって言ってくれれば話は早かったんだが。
ちゃんと質問に答えてくれていれば
この時点で、君の汎用的ってのは抽象クラスのことね(笑)で終わっていた。
0304nobodyさん
2009/01/31(土) 17:53:26ID:???> フレームワークのSSL対応ってどうなっているのでしょうか?
0305nobodyさん
2009/01/31(土) 17:53:36ID:???>>303 熱いねぇ
>>280は汎用的なクラスと書いてるなぁ。
>>281は個別実装でも別サイトで利用できたら汎用的なんだってさ。
汎用的なクラスといったら、抽象クラスに限定するわけじゃないが、
少なくともコンクリートのことじゃないと思うが、まぁ個人的な見解だからいいや。
それにしても、>>302は汎用的な"パーツ"って言い換えて苦しそうだねぇ。
> SSLページと非SSLページでセッションIDを共通にしたらセッションハイジャックされますよね。
> こういう部分をフレームワークは解決してくれているのでしょうか?
> 解決してくれているとしたら、どういった設計になっているのでしょうか?
さすが、こういうレベルの人の頭の中は面白い。
0307nobodyさん
2009/01/31(土) 17:55:39ID:???> 少なくともコンクリートのことじゃないと思うが
それは無いw
0308nobodyさん
2009/01/31(土) 17:57:54ID:???> それにしても、>>302は汎用的な"パーツ"って言い換えて苦しそうだねぇ。
別に、分かりやすく言い換えただけで
汎用的なクラスという言い方でもいいが?
0309nobodyさん
2009/01/31(土) 17:59:46ID:???こんないい加減な言葉で喧嘩するなw みっともない。
0310nobodyさん
2009/01/31(土) 18:02:05ID:???> フレームワークのSSL対応ってどうなっているのでしょうか?
0311nobodyさん
2009/01/31(土) 18:06:32ID:???> いや常識(笑)
> 汎用的なクラスは、一つのクラスを複数のサイトで使える物。
> それ以外の意味なんて無いだろw
先生!複数のサイトで使えないクラスの方がめずらしいと思うんですが?
0312nobodyさん
2009/01/31(土) 18:07:49ID:???複数のサイトで使えないクラス。
それがビジネスロジックを記述したクラス
0313nobodyさん
2009/01/31(土) 18:39:23ID:???>>302の定義でも汎用的ではないってことで落ち着きそうですね
0314nobodyさん
2009/01/31(土) 19:12:22ID:???0315nobodyさん
2009/01/31(土) 20:17:12ID:???そうか?
手法に致命的な欠陥がない限り多分そのまま普通に使えるし、使ったなりのシステムになると思うんだが。
ただ単に、>>313(とか>>282?)がそのやり方を使いたくないだけではないかとちょっと思った。
0316nobodyさん
2009/01/31(土) 20:31:55ID:???0317nobodyさん
2009/01/31(土) 20:46:34ID:???リダイレクトがちょっと引っかかるがそこは適当な処理に読み替えるとして、
致命的な欠陥があるなら指摘してみたらいいじゃない。正直煽りうざい
0318nobodyさん
2009/01/31(土) 21:02:59ID:???煽り?どこが。
0319nobodyさん
2009/01/31(土) 21:03:44ID:???0320nobodyさん
2009/01/31(土) 21:05:32ID:???0321nobodyさん
2009/01/31(土) 21:06:31ID:???まあ、好みの問題はあるだろうが。
俺なら設定依存じゃなくてコントローラから明示的に呼び出す方式にするかな。
フレームワークにもよるだろうし、どっちの方法も一長一短だけど。
0322nobodyさん
2009/01/31(土) 21:06:54ID:???どういう理由で売り上げが落ちるんだよw
0324nobodyさん
2009/01/31(土) 21:08:19ID:???0326nobodyさん
2009/01/31(土) 21:10:24ID:???0331nobodyさん
2009/01/31(土) 21:15:55ID:???0332nobodyさん
2009/01/31(土) 21:18:24ID:???いっているやつがいるかと思えば、話がすすんでみれば
結局、いろんなことを考えないといけないってことになってしまったな。
だからフレームワークに入れておいて簡単に使えるようにするべきだというのに。
0333nobodyさん
2009/01/31(土) 21:24:59ID:???「汎用的なカレー調理器具を考案しました」って言ってる奴に
「それじゃボルシチには使えないから汎用的じゃねえよ」
「うちは蕎麦屋だから関係ねえよ」って言ってるようなもんだな。
0334nobodyさん
2009/01/31(土) 21:25:37ID:???> 全てのコントローラのアクション実行前に、セキュアにするべきか一覧に入っているか調べる。
> セキュアページにhttpでアクセスしていたら、httpsにリダイレクト
ここと、
> セキュアトークンを持っていなければ、ログインページにリダイレクト
> ログインが許可されればセキュアトークンをセット(secure属性を負荷したクッキーを発行)し元のページに戻す。
> ログインページはデフォで用意するがカスタマイズ可能。要するにscaffold(土台)
これは別の処理
で、どちらも実は元の流れの、セキュアセッションと非セキュアセッションの持ち方について、
直接は関係ないじゃないかw
どう発展させるつもりだったんだろうと気にはなるが
0336nobodyさん
2009/01/31(土) 21:31:24ID:???挙句の果てに、
「それカレー調理器具じゃねーか。そんなの汎用的とはいえない。
いろんな調理器具をはめ込める規格を作れ。」
といっているやつまでいるから手に負えないw
0337nobodyさん
2009/01/31(土) 21:33:17ID:???0338nobodyさん
2009/01/31(土) 21:34:26ID:???0342nobodyさん
2009/01/31(土) 21:38:55ID:???0344nobodyさん
2009/01/31(土) 21:40:03ID:???0346nobodyさん
2009/01/31(土) 21:41:25ID:???文句はいらない。改善したコードを示せ。
0347nobodyさん
2009/01/31(土) 21:41:57ID:???0348nobodyさん
2009/01/31(土) 21:42:10ID:???0349nobodyさん
2009/01/31(土) 21:43:24ID:???煽りだっていわれるんだよね。自業自得。
0351nobodyさん
2009/01/31(土) 21:45:21ID:???0352nobodyさん
2009/01/31(土) 21:46:39ID:???0353nobodyさん
2009/01/31(土) 21:47:05ID:???0354nobodyさん
2009/01/31(土) 21:47:22ID:???0355nobodyさん
2009/01/31(土) 21:47:50ID:???0356nobodyさん
2009/01/31(土) 21:48:28ID:???ロジックを知っててフレームワークでの解決状況を聞きたいんならまだしも。
ロジックを知らない奴がフレームワークに依存しようってのがみえみえ
ちなみに、>>266を書いたのは俺。
おまいさんは、>>281でそれをぱくっただけ。
まだ、煽って情報引き出そうってか。
つらの皮厚いのう
0357nobodyさん
2009/01/31(土) 21:49:08ID:???0358nobodyさん
2009/01/31(土) 21:50:05ID:???いいから証拠は
0360nobodyさん
2009/01/31(土) 21:50:46ID:???0361nobodyさん
2009/01/31(土) 21:51:05ID:???0362nobodyさん
2009/01/31(土) 21:52:14ID:???そうだよ。そういうサイトもありだが、それは一例にすぎない。
つまり、セキュアサイトの扱いはビジネスロジックそのものなんだよ。
セキュアサイトの扱いが数パターンって誰かが書いてたが、
数パターンなんてもんじゃない。それを知ってかいてるかどうかの違い
■ このスレッドは過去ログ倉庫に格納されています