【PHP】フレームワーク CakePHP 2ホール目
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/11/14(水) 02:50:28ID:???http://www.cakephp.org/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
0441nobodyさん
2008/02/16(土) 15:58:36ID:???おまえらもクッキーにしようぜ
0442nobodyさん
2008/02/16(土) 16:03:51ID:???他のページ行ってもどってきたらデータを引き継げない。
0443nobodyさん
2008/02/16(土) 16:04:24ID:w7he1Bjb>セッションよりもhiddenの方が安全に決まってるだろうがw
うん、だからhiddenの方が安全な理由を教えてよ
「hidden セッション」とかで検索するとhiddenのほうが否定的なんだけど
>>440
>セッションは書き換えられたらおしまい
これはセッションを(少しでも)利用してるシステム全部に言えること
継続データをhiddenにするかセッションにするかとは全く論点が違う
0444nobodyさん
2008/02/16(土) 16:05:52ID:???お前の言うことと「ipa.go.jp」のどちらを信じるか言うまでも無いw
hiddenは危険(セッション変数を利用しよう)
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_05.html
0445nobodyさん
2008/02/16(土) 16:33:40ID:???安全なWebアプリ開発の鉄則 2004
http://www.soi.wide.ad.jp/class/20040031/slides/09/
2006.4.4「CSRF」と「Session Fixation」の諸問題について
http://www.ipa.go.jp/security/vuln/event/documents/20060228_3.pdf
安全なWebアプリ開発の鉄則 2006
http://www.nic.ad.jp/ja/materials/iw/2006/proceedings/T21.pdf
0446nobodyさん
2008/02/16(土) 17:02:33ID:???0450nobodyさん
2008/02/16(土) 17:52:02ID:???0451nobodyさん
2008/02/16(土) 21:16:52ID:???hidden=オナニー
セッション=セックス
0452nobodyさん
2008/02/16(土) 21:29:42ID:???個人的な雑感で言えば、セッション派だなぁ。
セッションってそもそもクライアントの送ってくるデータが信用できないから
渋々サーバ側にデータ置いて、金庫の鍵だけやんよって話なんだから(違ったらごめんね)、
データの信用度で言えば当然セッションの方が上だと思うよ。
たとえば、証券会社の登録フォームとかはセッションの上に
さらに短めの有効期限が切ってあって、入力ステップに時間が
空くと別人の入力と判断して強制的にやり直しするって形を取ってる。
要するにさ、hiddenってブラウザの画面上にレンダリングされないってだけで
普通のテキストエリア置いてあるのと全く変わりないんだから、
突っつきやすさから言ったらhiddenのが危なくないかな。
反論ぷりーず
0453nobodyさん
2008/02/16(土) 21:32:14ID:???サーバ側のファイルまで信用ができなくなるってのはやばい。
でもそれってもう入力フォームでなんちゃらって話じゃないよね。
0454nobodyさん
2008/02/16(土) 21:56:28ID:???0455nobodyさん
2008/02/16(土) 22:03:29ID:???同一セッションで、複数のウインドウ(タブ)を開かれて同じ画面を
操作された場合への対処をどうするかとか、
セッション上のデータのクリアタイミングとかをちゃんと考えてあるなら
別にセッションでもいいんだけど。
hiddenだからって、少なくとも破壊的操作が入るところではデータの
妥当性検証をするのは当たり前の話で、それをやっていないのが論外なだけ。
で、システム形態だとか対処コストを考えて実装方式を決めてください。
0456nobodyさん
2008/02/16(土) 22:05:42ID:???http://www.ipa.go.jp/security/awareness/vendor/programming/a01_05.html
これでhiddenが危険といわれてもw
会員ログインページをhiddenで判別してるんだろ?
こんなことするやつおらんやろ
テーマにしてるのは
会員ログインはセッションだけど
それ以外の確認画面や単純なページ移動でセッション多様するのを議論してる
ページ移動にかかわる、どうでもいいデータまでもセッションていうのが糞
0457nobodyさん
2008/02/16(土) 22:14:00ID:???> hiddenだからって、少なくとも破壊的操作が入るところではデータの
> 妥当性検証をするのは当たり前の話で、それをやっていないのが論外なだけ。
hiddenでデータを渡したらページごとに
同じチェックしないといけないじゃん。
そういうのは面倒だろう。
それをフレームワークで良い感じに楽にやる方法は無いのか?という話題。
0458nobodyさん
2008/02/16(土) 22:15:07ID:???どうでもいいデータまでセッションにしてると
一時的ではあってもキャッシュたくさんになるわけよ
アクセス数多いサイトだと
生産性高くても負荷的にどうなんだよ?
0459457
2008/02/16(土) 22:16:20ID:???hiddenで表示する必要もあるね。
ここんところ、CakePHPでのスタンダードなやり方ってどうすんのさ?
0460nobodyさん
2008/02/16(土) 22:22:22ID:???構築経験も小規模サイトの経験しかない
0461nobodyさん
2008/02/16(土) 22:24:24ID:???クッキー対応してないプラットフォームを無視してるよな
0463nobodyさん
2008/02/16(土) 22:30:43ID:???CakePHPのスレだからここ。
CakePHPでのやり方を聞くのは普通なわけ。
すでに他でやったことあるけど、それは自力でやっているだけなの。
フレームワークとはそれを簡単に提供するものなわけ。
あんたの言っていることは「CakePHPでPOSTした情報をどうやって取得するんだ」
という問い対して、$_POSTで取得すると答えているようなもん。
それはCakePHPのやり方ではない! (>>460へのレスでもある)
言っている意味。わかる?
0464nobodyさん
2008/02/16(土) 22:32:38ID:???煽りしか返ってこないとき、
その機能は無いと思ったほうがいいよw
無いと答えるのが悔しくて煽りに走る。
もしくは>>460が知らないだけ。
0465nobodyさん
2008/02/16(土) 22:41:28ID:???負荷的な意見には納得せざるおえない
楽だけ優先しすぎて負荷的な要素を一切考えないというのはおかしい
CakePHPがページ移動にセッションで渡せという仕様にもなってないわけだし
1.2から標準装備されたページ送りみても
セッションじゃなくてパラメータを渡す方法でページ送りする仕様だし
0466nobodyさん
2008/02/16(土) 23:04:37ID:???ページ移動にくだらんデータまでセッションで使いやがったら
2度目の依頼はまずしない!!
0467nobodyさん
2008/02/16(土) 23:04:42ID:w7he1Bjbいやいや、誰もそんな議論はしてない。
ページングとかはGETパラメータで当たり前。
>>455
>同一セッションで、複数のウインドウ(タブ)を開かれて同じ画面を操作された場合への対処
これはほんとそうで、画面識別のためのトークンを発行するなどの対処が必要。
0468nobodyさん
2008/02/16(土) 23:15:35ID:???ページングとかはGETパラメータで当たり前てw
セッション使うなら
ページングにGETパラメータを渡し続ける必要ないだろ?
0469nobodyさん
2008/02/16(土) 23:21:29ID:???なんかosCommeceやOpenPNEやEC-CUBEのスレと同じ臭いがするよね
0470nobodyさん
2008/02/16(土) 23:23:05ID:???楽だからセッション使うなら
ページングもセッションつかったら楽だろうが
ページングだけセッション使わないて何でや?
検索条件増えるたびにページリンクにパラメータ記述するの面倒やろが
0471nobodyさん
2008/02/16(土) 23:27:04ID:???それは何かというと、URLをコピーしておいて、後でそれを貼り付ければ
同じ内容を表示できるという点。
URLをメールで送って他の人に同じものを見てもらうとかね。
POSTもしくはセッションだと、同じ条件で検索し直したり
ページ移動し直さないといけなくなるけど。
0472nobodyさん
2008/02/16(土) 23:31:30ID:???おまえ画面識別のためのトークン発行なんてしてないだろ?
楽しようとするやつがそんなセキュリティ的なことするわけないやんw
0473nobodyさん
2008/02/16(土) 23:53:21ID:???0474nobodyさん
2008/02/17(日) 00:04:35ID:???/branches/1.2.x.x/cake/libs/model/model.php (log) - CakePHP : The Rapid Development Framework for PHP - Trac
https://trac.cakephp.org/log/branches/1.2.x.x/cake/libs/model/model.php
ざっくり Revision Log見た感じChangeset 6315ってのがその修正なんじゃね?
ろくに読んでないしというか読んでも正直よくわかんないから違ったらドンマイ
0475nobodyさん
2008/02/17(日) 00:39:48ID:???してるよと言われても
セッションに関するセキュリティ対策を具体的にどうやってるのか
全く書かれてないので説得力がない
対策してるのは画面識別のためのトークン発行だけ?
これは具体的にどうやってるの?
0476nobodyさん
2008/02/17(日) 01:24:22ID:???セッションそのものの話だから。
一応それの対応は、ログイン時にセッションIDをはりかえる(セッション固定化の対応)。
もっと厳密にやりたい(そういう要求の)時はセッションID+ユーザエージェント(またはcookie)での認証(セッション乗っ取りの対応)。
ただこれはユーザビリティ的に問題があるからそこを説明した上で納得してもらえればって感じで。
トークンは、処理1(表示)、処理2(POST・確認)、処理3(実行)っていうときに、
処理1でトークンを生成してセッションに格納し、その値をhiddenに埋め込むか、処理2へのURLに付加する。
処理2でpostデータをセッションに格納(トークンをネームスペースとする(画面識別))。
処理3でセッションからpostデータを取り出してDBに反映。
この時、処理2でバリデート失敗なら処理4へリダイレクト(リダイレクトURLにトークン付加)。
処理4は処理1と同じ画面(同テンプレート)で、セッションのpostデータをinput valueに入れる。
この処理の間、どの処理を行ったのかをセッションで管理する。
そうすることで処理2,3,4に直接行くのを防ぐ。
またセッションに有効なトークンがない場合は処理2,3,4は実行不可。
こんな感じでやってる。
0477nobodyさん
2008/02/17(日) 01:32:49ID:???>そうすることで処理2,3,4に直接行くのを防ぐ。
1から3とか、4から3とかを防ぐ。
0478nobodyさん
2008/02/17(日) 03:23:34ID:???毎回入れるの面倒だけど、なんとかならんのかな
0479nobodyさん
2008/02/17(日) 11:13:38ID:???そういう汎用的だが面倒な処理ってのは、フレームワークでやってほしいね。
Cakeにはそんな機能無いの?
なければそういうコンポーネントとか。
0480nobodyさん
2008/02/17(日) 11:18:29ID:???おー。それであってる。branches以下を見ればよかったのか。
意図したところにちゃんとコード入ってるよ。
find('count')には入ってないけど、やっぱcountで
afterfindを呼び出す必要は無いのかな?
0481nobodyさん
2008/02/17(日) 13:03:45ID:???とはじめは思ったけどcountは
$results = $this->__filterResults($results, true);
省いても結果変わらないから別によくね?
初心者丸出しですいません
0482nobodyさん
2008/02/17(日) 23:54:36ID:???どうやってる?
モデルみたいに簡単にかく方法用意されてないのかな?
0483nobodyさん
2008/02/18(月) 04:05:14ID:???0484nobodyさん
2008/02/18(月) 04:06:19ID:???どうすれば動くの?
例)
c_userテーブル
0486484
2008/02/18(月) 04:56:56ID:???メンバ変数名に[$]が自動的についてしまうのが原因かな
もっと詳しく調べてみよう
0487nobodyさん
2008/02/18(月) 04:58:45ID:???0489484
2008/02/18(月) 05:05:59ID:???bakeでつかって作ると
var $helpers = array('Html', 'Form', '');
helpers配列の最後に空の値が自動的に入るクサい
空の値をとったら動いた
0490nobodyさん
2008/02/18(月) 05:14:55ID:???c_usersテーブル
app/models/c_user.php
CUser
app/controllers/c_users_controller.php
CUsersController
じゃなかったっけ試してないけど って解決したならいいや
0491484
2008/02/18(月) 05:20:30ID:???helperのときの質問でライブラリ名指定するとこで
そのままエンターしたから
空の値がはいっちゃったくさい
0492nobodyさん
2008/02/18(月) 06:19:30ID:???でリンク作成できるみたいだけど
リンクを新しいウィンドウで開かせたい場合はどうしてますか?
0493492
2008/02/18(月) 06:45:36ID:???array('target'=>'newwin')
でよかったんだ
0494nobodyさん
2008/02/18(月) 07:28:02ID:???激的に作業スピードが変わるということはないな
0496nobodyさん
2008/02/18(月) 09:47:10ID:???まあ、もとからそれが目的なのだろうから仕方ないかwww
0497nobodyさん
2008/02/18(月) 11:10:35ID:???cakeユーザはある意味凄いと思うよ
0498nobodyさん
2008/02/18(月) 11:17:26ID:???今まで沢山のサイト作ってきたので
0から作るようなサイトはあまりないよ
それを壊してフレームワークにするとかアホらしい作業
0500nobodyさん
2008/02/18(月) 14:50:14ID:???ブラックボックスの割に 穴だらけなのが困る
フレームワークの意味ねえよw
0501nobodyさん
2008/02/18(月) 17:24:44ID:???穴?
何の話?
0502nobodyさん
2008/02/18(月) 19:28:56ID:???後方互換取ろうとするもんだから、メソッド内での引き回しが地獄
0503nobodyさん
2008/02/18(月) 20:31:27ID:???それには同意。引数の名前の通りに使ってくれと思う。
でも、それを理由に他のフレームワークを調べてみたんだが、
どうもCakeほど総合力で勝っているものが無い・・・
もう無くてもいいかもしれんが個人的にPHP4、PHP5コード互換と
アソシエーションとかデータベース周りが一番実用的なんだよなぁ。
※PHP4、PHP5コード互換とはPHP4用とPHP5用で同じコードが使えるという意味。
CodeIgniterはPHP4対応だが、コンストラクタがPHP4とPHP5でのやり方が違って拍子抜け。
0505nobodyさん
2008/02/18(月) 20:44:06ID:???0506nobodyさん
2008/02/18(月) 20:52:34ID:???0507nobodyさん
2008/02/18(月) 21:34:20ID:???大きなデータベースをガシガシ使う予定があるんだけど、
やっぱりPDO使う場合に比べてCakePHPでシステム作ると
データ処理とか重くなりますか?
0508nobodyさん
2008/02/18(月) 21:59:37ID:???なんでわざわざフレームワークの穴埋めする必要があるのかとw
0509nobodyさん
2008/02/18(月) 22:05:30ID:???0511nobodyさん
2008/02/18(月) 22:16:09ID:???そういうのは、言い出した人が証明する義務を持つってのが
世の中の常識だってわかってる?
まあわかっていたらそんな中途半端なこと言わないと思うが。
0512507
2008/02/18(月) 22:19:43ID:???やっぱそうですよね…
体感で明らかに違うくらい差がありますかね?
少しでも軽いシステムを作る場合は、Cakeは避けた方が無難
なのかな…便利そうで使ってみたかったけど…
0513nobodyさん
2008/02/18(月) 22:23:52ID:???C言語を使ったほうがいいよ。
0514nobodyさん
2008/02/18(月) 22:24:12ID:???>少しでも軽いシステムを作る場合は、Cakeは避けた方が無難
そうじゃない
少しでも軽いシステムを作る場合は、フレームワークは避けた方が無難
「少しでも」が何と比較してなのかはわからんが
0515nobodyさん
2008/02/18(月) 22:39:15ID:???静的HTML吐いたりとか検討すべきだし
0516nobodyさん
2008/02/18(月) 22:41:31ID:???システムを作ってさい。
0517nobodyさん
2008/02/18(月) 22:54:50ID:???俺俺関数はすべてc言語でPHP拡張モジュールにして利用してるよ
高速化と利便性を意識してやってる
0518nobodyさん
2008/02/18(月) 23:09:21ID:???証明するもなにも使えばすぐわかる
セキュリティホールが簡単にできてしまう
基本的なDB関係やパラメータの受け渡しで穴がある
もちろん気をつければいいんだが
フレームワークでそんなとこに気をつけなきゃいけない
というのがちょっといまいち
素人がセキュリティホールだらけのサイトつくりまくって
PHPの糞さを助長しなければいいのだが
0520nobodyさん
2008/02/18(月) 23:10:50ID:???規則に統一性がなく 中途半端な感じ
まあオープンソースの宿命といえばそれまでだけどね
0522nobodyさん
2008/02/19(火) 00:55:22ID:???例えばtable1、table2ってテーブル名があったら、
table1s、table2sってしても大丈夫?
0523nobodyさん
2008/02/19(火) 01:27:54ID:???証明しないとわからない人間が使うとどうなるか…
PHPは糞言語っていわれるのがおちだなあ
1.3くらいでもうちょい使いやすくなってるといいな
0525nobodyさん
2008/02/19(火) 01:56:18ID:???0526nobodyさん
2008/02/19(火) 02:14:54ID:???つくづく英語の複数形という考え方はすごいと思うよ。
0528nobodyさん
2008/02/19(火) 03:30:47ID:???まったく違う名前にだろうが自由自在。
0529nobodyさん
2008/02/19(火) 04:19:11ID:???table1 なら TableFirsts
table2 なら TableSeconds
table3 なら TableThirds
になるらしい
0532nobodyさん
2008/02/19(火) 14:11:35ID:twNHgR++ホラっ、そんなこと言っちゃダメっ!w
0534nobodyさん
2008/02/19(火) 21:00:41ID:???SQLという言語には穴があるといわれている。
0535nobodyさん
2008/02/19(火) 21:33:04ID:???要するにフレームワーク自体にSQLインジェクションの脆弱性があるって事?
kwskkwsk
0537nobodyさん
2008/02/19(火) 23:27:20ID:???0538nobodyさん
2008/02/20(水) 08:44:17ID:???http://www.1x1.jp/blog/2007/07/cakephp_operator_injection.html
0540nobodyさん
2008/02/20(水) 10:16:32ID:???超典型的なSQLインジェクションの穴だし、たしかに低レベルだなw
ちなみにh()もhtmlspechalcharsに丸渡ししてるから、
htmlエスケープの穴も塞がれてない
0541nobodyさん
2008/02/20(水) 13:04:12ID:???笑うのは、これを穴といっている奴のことな。
たとえば、SQLインジェクションを、SQLの穴という奴はいない。
SQLを使って作った奴の問題。
世の中のRDMS用のどのライブラリ・フレームワークもSQLを直接実行できる。
だから、すべてのライブラリ・フレームワークに穴がある。といったら
馬鹿にされるぞ。
余りにも低レベルな奴だとな。
■ このスレッドは過去ログ倉庫に格納されています