【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/
0208nobodyさん
2009/01/30(金) 10:43:17ID:???> 匿名の個人情報が見れるだけで実害はほとんどない。
これは笑う所かいな?w
個人情報=本名・住所等
匿名の本名・住所等が見れるだけで実害はほとんどない。
匿名になってないじゃないか〜い。
0209nobodyさん
2009/01/30(金) 10:46:19ID:???AmazonやYahooでいつ別ウインドウが出るってんだ
その手のサイトでログイン後に別ウインドウとかアホ設計だろうに
0210nobodyさん
2009/01/30(金) 10:49:28ID:???別ウインドウってのは人間が出すんだよ。
ネットワークが遅いから、過去の履歴の詳細をいくつも別ウインドウで開くとか
(一つのウインドウの内容を見ている間に、他のページの読み込みが終わっている)
0211nobodyさん
2009/01/30(金) 10:51:55ID:???もしかしてそこが笑うところ?
> 個人情報=本名・住所等
そんな決めつけでよくやってられるな。
たとえば、性別とか好みとかカートの中身とか、クリック動向とか
個人を特定できないが個人に関係する情報も個人情報だろが
0213nobodyさん
2009/01/30(金) 10:55:22ID:???連続でリロードすると問題になる。
サーバーでは値が変わっているが、
クライアントでは新しい値を受け取っていないなど。
0214nobodyさん
2009/01/30(金) 10:55:54ID:???> だけどフレームワークの意味をもう一度思い出してほしい。
> 汎用的で複雑な処理を簡単に実装できることだ。
セキュアセッションは汎用的でも複雑でもないだろ。
関数一発挟むだけなのに、それをプロパティで設定しろってか。
0216nobodyさん
2009/01/30(金) 10:57:52ID:???必ず認証が必要だというが、
Amazonはそうなっていない。
これを実現できるフレームワークは皆無ってことでおk?
0217nobodyさん
2009/01/30(金) 11:00:03ID:???だが、Amazonは別ウインドウを出しても、連続リロードしても問題ない。
これを実現できるフレームワークは皆無ってことでおk?
0219nobodyさん
2009/01/30(金) 11:04:46ID:???それは、ブラウザ起動して初めてログインした場合だろ。
一度ログインしていれば、非セキュアページから
セキュアページに入るときにパスワードは要求されない。
一度注文履歴を見たあとで、トップに戻れ。
トップから、もう一度注文履歴を見る間にパスワードを聞かれるか?
0220nobodyさん
2009/01/30(金) 11:12:49ID:???> 関数一発挟むだけなのに、それをプロパティで設定しろってか。
関数一発挟むだけじゃないな。
Windowsプログラミングじゃあるまいし。
パスワード入力ダイアログを出して終わりじゃないんだよ。
認証が必要になった場合に、他のページに飛ばさないといけない。
そこから戻らないといけない。
一回目(認証前)と戻ったときの二回目(認証後)で違う処理をしないといけない。
必ずパスワードを出すというわりに、認証後はパスワードを出さないという風に矛盾している。
0221nobodyさん
2009/01/30(金) 11:23:06ID:???> あと、毎回セッションIDを変える方法は、
> 別ウインドウを出したとき問題になる。
ただ単に、どっちかのセッションが使えなくなるだけじゃない?
問題なし
0222nobodyさん
2009/01/30(金) 11:24:24ID:???それで何が不満なの?
なにかセキュリティ上の問題があるなら指摘してください
>>220
よーくわかった。(ry
0224nobodyさん
2009/01/30(金) 11:39:10ID:???PHPフレームワークスレでこんな機能が全て実現できるフレームワークは
PHPにないよね!って言われた所でなんなんだっていう
ちなみにPerlでもJavaでもASPでもそんなフレームワークはない
その辺は自分で実装する
0225nobodyさん
2009/01/30(金) 12:33:45ID:???>だけどフレームワークの意味をもう一度思い出してほしい。
>
>汎用的で複雑な処理を簡単に実装できることだ。
>重要な操作の前に確認したいのなら、
>プロパティ一つ程度の簡単なコードですむようにしてくれるものだろう?
>
>YAHOOのパスワードの再確認を求められるケースとそうじゃないケースを
>作る為のサポート機能。それこそフレームワークが提供するべきものだろう?
これがフレームワークが提供すべき汎用的な機能かと言うとどうだろうね?
0226225
2009/01/30(金) 12:35:02ID:???「Webアプリケーションフレームワークが」提供すべきかどうか、ね。
0227nobodyさん
2009/01/30(金) 12:46:45ID:???そこにバグがあったらそれ使ってるシステムみんな死亡じゃん
クリティカルな部分は独自に実装するからバグがあってもなんとななるわけで
0228nobodyさん
2009/01/30(金) 13:17:58ID:???んなこといったら、プレースホルダ使いたい、使わせたい為だけにPEAR::DB使ってた人間とか涙目だろ。
実際そういった判断は、凡PGに任せるより遙かにセキュアだったと思うがな
フレームワーク(というか基底ライブラリ)の有用性の一面を完全否定っすか。
0229nobodyさん
2009/01/30(金) 13:34:34ID:???問題はバグがどうたらじゃないよ
設計や計画にはちゃんとした理解が必要だが、コーディングが難しかったり
面倒だったりするわけじゃないからFWに任せる内容じゃないってことだよ。
コーディングの助けっていう意味程度なら、どのFWにもセキュアセッション
を扱う機能や、ワンタイムトークンを自動でハンドリングするフォーム要素とか
一通りのものは揃ってる。
が、ページ遷移設計まで自動化してほしいとは思わないけどな。
PieceFrameworkあたりなら、その辺はすでに実装済みかもしれんけど。
0230nobodyさん
2009/01/30(金) 13:36:33ID:???ああいうのはFWで吸収しない方がいい
0231nobodyさん
2009/01/30(金) 13:38:02ID:???きちんと実装されるかどうかじゃなくて、フレームワークの場合は
そういうバグがありましたって公開されちゃうから、フレームワーク使ってるのバレると
悪用されるってことじゃないの?
独自実装ならクソみたいな実装でも中はどうなってるかアタックするまで解らんのだし
0232nobodyさん
2009/01/30(金) 13:43:38ID:???言ってみれば各フレームワークも、それぞれの独自実装の固まりだからな
ある程度のライブラリくらい共用して欲しいような気もする今日この頃。
APIも統一されるし。
0233nobodyさん
2009/01/30(金) 13:53:53ID:???0235nobodyさん
2009/01/30(金) 14:24:52ID:???PHPって複数のセッションを同時に利用することってできるの?
それができるかできないかで、ものすごく話が変わってくるような。
・・・できないんだろうな。$_SESSION だもんな・・・
0236nobodyさん
2009/01/30(金) 14:32:51ID:???微妙にスレチだぞ>くだすれ行けって感じだが・・・
無理やりFWレイヤーの話に持ってくると、Zend_Sessionではセッションの配列で
ネームスペース的な扱いをして、使い分けている。
でも、そういう意味じゃなくて、上の流れで、セキュアセッションと平文セッションを
分割して持てるか?って話をしたいわけだよな?
PHPが受け入れるセッションID自体は一つ。それは正しい。
解は二つ。
クッキーと独自のバックエンドを使って、自前でセッション機構を作る。
セッションを理解してれば、簡単。
ちなみにYahoo!はPHPでこの方式を採用してる。
もう一つは、セッションそのものは永続化しておいて、セッションネームスペース内
に侵入を許す際に、そのネームスペースに対する適切なアクセスかどうかを個別のクッキーで検証する。
ZFで実装してるやつはたぶんこれがFA
0237nobodyさん
2009/01/30(金) 14:42:03ID:???いや
これがCakePHPだから、セキュリティ情報として全世界にこういうバグありますよって公開されちゃうわけよ。
その情報を見てクラッカーが仕掛けてくる可能性が高い。
もし仮に自分で全て実装したものに同じバグがあったとしても、よっぽどしっかりクラックされない限り、誰にも知られることはない。
0238nobodyさん
2009/01/30(金) 14:47:27ID:???> でも、そういう意味じゃなくて、上の流れで、セキュアセッションと平文セッションを
> 分割して持てるか?って話をしたいわけだよな?
ですです。それができれば、盗聴(非SSL)でセッションハイジャックされたとしても
その中には非セキュア用の情報しかないし、セキュア用のセッション(ログイン状態)等と
簡単に切り分けできるなーと。
ただ、他の言語の実装をみても、「セッション」ってもの自体の考え方が、どうやらサーバ-
クライアントで1対1っぽい?
>解は二つ。
もう一つ、セッションはあくまでsecureで利用して、非セキュアな情報はみんなCookieに
放り込めばいいじゃない!ってふと思いついた。
最低4KB×20(50?)個なら、とりあえず普通に使えそうとか。
0239nobodyさん
2009/01/30(金) 14:54:52ID:???セキュリティソフトのせいで動きませんみたいなサイトになるぞ
0240nobodyさん
2009/01/30(金) 15:02:01ID:???根拠は?
0243nobodyさん
2009/01/30(金) 15:15:10ID:???0244nobodyさん
2009/01/30(金) 15:18:00ID:???0245nobodyさん
2009/01/30(金) 15:32:12ID:???共有SSLに対応しているフレームワークってある?
http://www.aaa.com/
https://www.rental-server.com/~aaa.com/
こうなっているときに、ドメイン名違うし、パス違うしで
セッション保てないわで、困るんだよね。
0246nobodyさん
2009/01/30(金) 15:33:30ID:???むしろブラクラに飛ばしてやれ
0247nobodyさん
2009/01/30(金) 15:34:14ID:???それじゃ携帯サイト対応できねーじゃん
0248nobodyさん
2009/01/30(金) 15:39:41ID:???クッキー切っている場合(携帯対応)のセッションで
cookieにsecure属性をつけた場合の動作と同じことを
ちゃんとやっているのか確証を得たいが見つからない。
0249nobodyさん
2009/01/30(金) 15:48:16ID:???0250nobodyさん
2009/01/30(金) 15:54:21ID:???非対応にしてるサイトってあんまないけどな。
結局Cookie使わなくてもセッションは維持できる。
0251nobodyさん
2009/01/30(金) 16:09:01ID:???携帯サイト、なんて、そりゃぁもう。機種ごとにハンドメイドだよ。
これを解決してるオープンソースのフレームワークはない。
PerlならMobaSifがあるけどなぁ。
0252nobodyさん
2009/01/30(金) 16:17:17ID:???>>236,238の流れから言うと、まさにセキュアと非セキュアでセッションが
分離出来てていいじゃないかw
分離されすぎてクッキーすらデータの受け渡しに使えないけどな
どうやってフレームワークに組み込めばいいんだろう
クッキー切ってる人相手にシステム作ってる人なら、もともとドメイン関係ないし
素晴らしいフレームワークを持ってるんでは無かろうか
0253nobodyさん
2009/01/30(金) 16:23:31ID:???IDはアクセス毎に変える
0256nobodyさん
2009/01/30(金) 17:04:49ID:???0257nobodyさん
2009/01/30(金) 17:05:43ID:???0258nobodyさん
2009/01/30(金) 18:19:42ID:???携帯サイト対応ってそれだけで一仕事だよ。
0259nobodyさん
2009/01/31(土) 01:06:04ID:???この手の話は、頭がこんがらがって十分に理解できていないです。
もっと勉強しなくちゃ、買い物サイトは作れないな〜><
0260nobodyさん
2009/01/31(土) 02:01:11ID:???はっきりとした答えが出せないんだろうな。
0261nobodyさん
2009/01/31(土) 02:27:29ID:???継続を使ったWEBアプリ
http://www.thinkit.co.jp/article/74/1/
Kahuaは継続ベースのアプリケーションサーバ/フレームワーク
http://www.kahua.org/
セッションも良いけど継続もね☆
0262nobodyさん
2009/01/31(土) 04:23:52ID:???そのセッションをどうやって実現しているかだ。
セッションIDの格納にクッキーを使う場合。
非セキュアサイトでのセッションIDは盗聴されるから
非セキュアサイトでのセッションIDと、セキュアサイトのセッションIDは別に持たないといけない。
(セキュアサイトのセッションIDはセキュアサイトでしか送信されない。)
問題は、セキュアサイトでセッションに格納した情報が、非セキュアサイトとセキュアサイトの
セッションIDのどちらに関連付けられているかということ。
もし、非セキュアサイトでのセッションIDに関連付けられていたら、そのセッションIDを
盗聴して使えば、他人がセッションの情報を取得することが可能になる。
そもそも、セキュア、非セキュア、二つのセッションIDを持つことがPHP or フレームワークで可能なのか?という問題もある。
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
■ このスレッドは過去ログ倉庫に格納されています