【総合】PHPフレームワークを語るスレ8
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/10/17(水) 16:01:41ID:72/gWtt1http://pc11.2ch.net/test/read.cgi/php/1181350116/
0302nobodyさん
2007/10/31(水) 00:35:20ID:???オンラインショップのバックエンドとか旅券発行システムとかで
エスケープ必要なかったシステムはいくつも見てきているけど
だからって「全くといっていいほど」とはとても思えない程度にはあったなぁ
CI知らないけどSymfonyではエスケープの方式をいくつかから選択できるよ
何もしない、闇雲に全部やる、
普通の表示は全部やるけど必要なものは別オブジェクトからrawで取り出す、など。
0303nobodyさん
2007/10/31(水) 00:41:28ID:???>>290
やっぱり一括エスケープするのはよくないよ。
単にエスケープし忘れを防ぎたいとか、htmlspecialchars() が面倒というだけなら、ビューがデフォルトでエスケープするようになってればいいだけ。
素のPHPはそうなってないけど、そうなっているようなテンプレートエンジンを選べばいいだけの話。
一括エスケープは、目的のための手段のひとつに過ぎない。手段はほかにもあるし、一括エスケープが最適な方法とは思えない。
なんか最新のフレームワークでそうなっているからとか、えらい人がそう言ったからとか、そんなことで決めてないか?
>>290からはそんな匂いがプンプンする。
もし最新のフレームワークがSmarty使ってたら、または○○神がSmarty使ってたら、Smarty使うことが最高の方法ということになるのか?
でもSymfonyもCIも一括エスケープが基本なのか。CI使おうと思ってたけど萎えた。
こんな機能いらんから、テンプレートエンジンが自由に選べられるようにしてほしい。
オフにできるならCI使ってみる。
0304nobodyさん
2007/10/31(水) 00:43:24ID:???どんなに注意してもかならず誰かやらかすよ
XSSの歴史がそれを証明してる
0305nobodyさん
2007/10/31(水) 00:43:47ID:???>CI知らないけどSymfonyではエスケープの方式をいくつかから選択できるよ
これいいね。Symfonyにしようかな。
0306nobodyさん
2007/10/31(水) 00:48:38ID:???トータルで見たらエラーの量を低減するのは明らかだからね。
0307nobodyさん
2007/10/31(水) 00:51:23ID:???したくないならそりゃしないでもいいだろう
ってか>>303の決めつけにワロタ
思いこみの深さからいうと昨日のアニヲタ君かな?
君の方が権威に弱そうだったから権威っぽい名前を出しただけのことだよw
0308nobodyさん
2007/10/31(水) 00:53:26ID:???ベッキーがなんと言おうとこれだけは譲れない
0309nobodyさん
2007/10/31(水) 00:54:51ID:???何が問題なのかさっぱり分からん。
0310nobodyさん
2007/10/31(水) 01:07:20ID:???詳しい処理見た訳じゃないが、
フレームワーク作者的に言えば
アサイン時にエスケープの有無は選べるように普通するだろ
そんなの考えたらすぐ分かるじゃん
少なくともテンプレートの層でエスケープするより
入り口でエスケープするアプローチの方がスマートだと俺は思うね。
0311nobodyさん
2007/10/31(水) 01:13:25ID:???データの加工をV前に済ます(Vは極力弄らない)という点からみるとそのほうが妥当かも。
0312nobodyさん
2007/10/31(水) 01:17:50ID:???ビューのなかで繰り返しのコード(for等)をなくすアイデアない?
0313nobodyさん
2007/10/31(水) 01:19:31ID:???0314nobodyさん
2007/10/31(水) 01:27:43ID:???変に叩かせてしまった
面識はないけどすみません
要は、藤本氏の言葉は、ホワイトリスト方式の方がいいよという文脈だった
俺もそう思う
0315nobodyさん
2007/10/31(水) 02:25:14ID:???Ethna的にはnl2br()はSmartyのnl2br修飾子を使うんだと思う。
0316nobodyさん
2007/10/31(水) 03:03:20ID:???ttp://blog.enjoitech.jp/detail.php?aid=128
ここで普通にQF2使ってるんだけど、
QF2の状況ってどんな感じなのかしら。
ちょっと前にみたらバージョンがえらく低かったんで、
まだまだ実用外だと思っていたんだが。
QFはアイディアは面白いと思うのよ。
色々と問題はあるけど。
0317nobodyさん
2007/10/31(水) 09:59:12ID:???MVC的にはエスケープはViewがやるのが正しいんでないの?
ViewがHTMLとは限らないんだから、
どんなエスケープ処理が必要か知ってるのはViewだけであるべきでしょ。
0318nobodyさん
2007/10/31(水) 10:41:33ID:WWjGeZUw0319nobodyさん
2007/10/31(水) 10:44:11ID:???$file = $tpl_dir. 'template.tpl';
if (!file_exists($file)) {
$contents = preg_replace(
array(
'/^<\?xml/',
'/#\{(.*?)\}/',
'/%\{(.*?)\}/'
),
array(
'<<?php ?>?xml',
'<?php echo $1; ?>',
'<?php echo htmlspecialchars($1); ?>'
),
file_get_contents($file)
);
file_put_contents($file, $contents);
}
include $file;
こんな感じか。変数がかぶるとかなら関数作って渡せばいいだけやね。
うちだと、symfonyのviewの部分に、こんな感じのを作って入れてる。
(といってもそのままじゃなくて、<input />等のタグを、ヘルパに変換して代入する処理も入れてる訳だけど。
0320nobodyさん
2007/10/31(水) 10:44:52ID:???0321nobodyさん
2007/10/31(水) 10:52:17ID:???エスケープ漏れをなくしたいなら、view側がデフォルトでエスケープする仕様になってればいいだけ。
それで十分だし>>293のような問題も起きない。
それでも一括エスケープの方がいいという根拠は何?
0323nobodyさん
2007/10/31(水) 14:58:56ID:???0324nobodyさん
2007/10/31(水) 15:16:03ID:???別にViewでやったっていいだろ?
テンプレートコーディングがうんこだと言うのは認めるが。
アサイン時のオートエスケープがどうか?という提起なのであって、
それをやるオブジェクトがViewだろうとControllerだろうとWebアプリじゃ違いはないじゃん。
あと文句言ってる奴はちゃんとオートエスケープの実装と意図を見てから言えよ。
かなり的外れになっちゃってるぞ。
0325nobodyさん
2007/10/31(水) 15:18:09ID:???0327nobodyさん
2007/10/31(水) 15:44:34ID:???0328nobodyさん
2007/10/31(水) 15:47:17ID:???0329nobodyさん
2007/10/31(水) 16:06:33ID:???0330nobodyさん
2007/10/31(水) 16:27:25ID:???0332nobodyさん
2007/10/31(水) 16:32:49ID:???0333nobodyさん
2007/10/31(水) 17:18:03ID:???0334nobodyさん
2007/10/31(水) 17:18:17ID:???$_POSTと$_COOKIEのデータを自動的にエスケープする設定はあるみたいだが、まさかこれのことではないよな?
テンプレートを出力するときに勝手に一括エスケープされるのかと思ったけど、そうでもないみたいだし。
$data = array('var'=>'<b>FOO</b>');
$this->load->view('blogview');
とかしてみたんだけど、テンプレートでは $var はエスケープされてなかった。
モダンなフレームワークであるCodeIgniterでは一括してエスケープしてくれるから htmlspecialchars() は使う必要ないと>>273が語ってくれてるんだけど、見つからん。
もちろん>>273は知ってるはずだから、すまんがさくっと教えてくれ>>273
0335nobodyさん
2007/10/31(水) 17:25:15ID:???>あと文句言ってる奴はちゃんとオートエスケープの実装と意図を見てから言えよ。
>かなり的外れになっちゃってるぞ。
なにがどう的外れか書かないと、おまえこそ的外れだといわれるぞ。
オートエスケープ?の問題点が指摘されてるんだが、解決策は示されてない。
問題点が問題点でないというなら、解説希望。
0336nobodyさん
2007/10/31(水) 17:26:23ID:???記憶は定かではないが、今見てないならないのかもな
自分で拡張したciに実装しただけかもしれん
ciって筋はいいけど、ちょっと機能的には弱いだろ
まあいずれにしろテンプレートレベルでエスケープするのは
いい方策ではないと思うがな
0339nobodyさん
2007/10/31(水) 17:36:36ID:???レゴじゃないんだよな
なんかパーツがでかいっていうか
0340nobodyさん
2007/10/31(水) 17:43:01ID:???コンポーネント間で依存性をほとんどなくしたい
ただ設定クラスとかContextを作ると、そこに依存性が生まれてしまう
何にも依存してないコンポーネント群を、
それらに依存するコアコンポーネントが動かす形にしようかとか考えてる
0341nobodyさん
2007/10/31(水) 17:48:56ID:???0342nobodyさん
2007/10/31(水) 17:50:36ID:???どのくらいからDI系コンテナのメリット出てくるんですかね
0343nobodyさん
2007/10/31(水) 18:01:53ID:???ユニットテストも書きやすくなる
依存が多いとモックとか用意するの面倒だ
DIコンテナとかは要らないと思うけど
0344nobodyさん
2007/10/31(水) 18:08:30ID:???フレームワークのフレームワークにすることが出来るから
フルスタックFWの「この機能だけ欲しい」ってなっても
それだけを切り離すことは難しいから
ごっそり捨てるはめになる
0345nobodyさん
2007/10/31(水) 18:17:17ID:???php5でstrictエラー出まくってうぜえええ
0346nobodyさん
2007/10/31(水) 18:25:32ID:???4用の箇所を洗い出すための機能みたいなもんなんだからさー
0347nobodyさん
2007/10/31(水) 18:30:36ID:???ありがd
0348nobodyさん
2007/10/31(水) 19:02:17ID:???0349nobodyさん
2007/10/31(水) 19:17:59ID:???0350nobodyさん
2007/10/31(水) 20:05:57ID:???0351nobodyさん
2007/10/31(水) 20:12:16ID:???エラーメッセージはしょぼいし
パスワード忘れた時のナビゲーションもない
0352nobodyさん
2007/10/31(水) 20:13:09ID:???>まあいずれにしろテンプレートレベルでエスケープするのは
>いい方策ではないと思うがな
だから、それはなんで?理由が述べられてないじゃん。俺、エスパー力が少ないから336の考えが読み取れない。
モダンなフレームワークがそうしてるから?ナントカの神様がそうしてるから?
>>337
実物ってどれのこといってるの?
指摘された問題点に対する回答は?
0354nobodyさん
2007/10/31(水) 20:26:19ID:???0355nobodyさん
2007/10/31(水) 20:37:28ID:???その辺で楽できないZFは正直どんなもんかと思いますね。
0356nobodyさん
2007/10/31(水) 20:40:54ID:???フルスタックを志向しなかったコンセプトは好き
0358nobodyさん
2007/11/01(木) 01:06:33ID:???いまいち想像できない
0359nobodyさん
2007/11/01(木) 01:58:12ID:???0360nobodyさん
2007/11/01(木) 07:57:27ID:???おれ、あほだからわからん。
テンプレートでエスケープする方法と比べてなにが利点なの?
SymfonyもCIも、テンプレートが素のPHPだからデフォルトではエスケープされないのがそもそもの問題であって、
デフォルトでエスケープされれば、別に一括してやる必要なんかまったくないと思うけど。
賢い>>353、答えよろしく。
0361nobodyさん
2007/11/01(木) 09:07:17ID:???CIはそうではなく>>273のねつ造であることがわかったけど、ほかに何があるの?
>>273
>モダンなFWはだいたいそう
と書いてるから、ほかにもいろいろあるんだよね?
まさかsymfonyだけとかいうオチじゃないと思いたい。
もしかして>>273は未来人?将来的にはCIも一括エスケープするようになるのを知ってて書いてるとか。
そりゃ過去から書いてるように見えるわな。
0362nobodyさん
2007/11/01(木) 10:37:52ID:qneMLrtCまさかこいつらを実用してる人とか居るの……?
0364nobodyさん
2007/11/01(木) 10:40:12ID:???私はCI使うときも生PHPでビューを書いてるからよく知らないけど、CIにもテンプレートエンジン?みたいなのが
あったと思う。
あれを使うと自動でエスケープされるのかもしれない。
0365nobodyさん
2007/11/01(木) 12:22:45ID:???氏ね
0366nobodyさん
2007/11/01(木) 12:32:12ID:???レス見ればFWなんかどーでもいいと思ってるのがよくわかるw
0367nobodyさん
2007/11/01(木) 12:44:45ID:???自分が出した疑問点なのに実装は確認せず「お前がもってこいや」発言、
テンプレートロジック推奨、極度の煽り文体・・・。
もう荒らしたいだけちゃうんかと。
0368nobodyさん
2007/11/01(木) 12:49:17ID:QDpKWleMしょっぱいフレームワーク量産してるのが滑稽で仕方ないよwww
0370nobodyさん
2007/11/01(木) 13:12:28ID:???パンチカード式プログラミング
↓
マシン語
↓
アセンブラ
↓
構造化プログラミング ←今ココ
↓
オブジェクト指向プログラミング
フレームワークを使いこなしている人は少数と見た!
0371nobodyさん
2007/11/01(木) 13:45:41ID:???>まともな議論はスルー、
スルーしてるのは一括エスケープ推進派だよね。ちゃんと>>360の質問に答えてよ。
>WebアプリにおけるMVCの役割分担は思考から排除、
VですべきことをCでしてるのはそっちでしょ。
権威に弱いみたいだから紹介しとくね。
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02_main.html
>サニタイジングは(2)HTML生成時のタイミングで行うべきである。
>自分が出した疑問点なのに実装は確認せず「お前がもってこいや」発言、
確認したよ?CI使ってみたら、そんなのなかった。つまりそっちのデマカセであることを確認しました。
だから「一括エスケープしてくれるモダンなFWってどれ?」と聞いているんだけど。>>273みるとなんかたくさんあるみたいじゃん?
うそっぱち紹介しといてこれはないよな。
>テンプレートロジック推奨、
テンプレートロジックってどのことを言ってる?HTMLエスケープすること?まさかそれをロジックといってるのかな。
symfonyでもCIでも、テンプレート中にifやforeachをバリバリ埋め込んでるけど、それは見ないふり?
>極度の煽り文体・・・。
>>353のことかぁぁ!
>もう荒らしたいだけちゃうんかと。
答えられないなら黙っとけば?負け惜しみミットモネー
0372nobodyさん
2007/11/01(木) 14:08:54ID:???単なる面倒くさい奴になってることに気づけよ
ヒントはいっぱい転がってるのにも関わらず理解できない奴に
これ以上丁寧に説明してやる義理はねーんだよ
というより説明しなくても分かるだろ、フツー
既に説明することすらアホらしいレベルの話なんだよ
一言で言うとお前にはプログラマとしてのセンスが決定的に欠けているんだよ
0373nobodyさん
2007/11/01(木) 14:08:59ID:???出力するときに、出力する媒体(HTMLとかSQLとか)によって適切な
エスケープするのが基本だろ。
これに異論言う奴はいないだろ?
で、実際問題、CからVに渡すとき、出力媒体はHTMLなわけだから
一括エスケープでもいいじゃん。って発想でもいいわけだし、
Vレベルでデフォルトが、エスケープ有りでもいいわけだろ?
俺にとっては微妙な差異なんだが、そこにそんなにこだわる
必要があるのか疑問だな。
0374nobodyさん
2007/11/01(木) 14:55:02ID:???現実をかたくなに拒絶し、
甘く非現実的な幻想のみを受け入れ、
自分が考えたいように考え、
自分が信じたいことだけを信じる、
という思考パターンを強化学習しているようなものだから、
その嗜好がプログラマとしての資質を破壊していくようにできてるんだな。
0375nobodyさん
2007/11/01(木) 15:10:15ID:???0376nobodyさん
2007/11/01(木) 15:14:56ID:???0377nobodyさん
2007/11/01(木) 15:16:17ID:???だからそういってるんだけど。
テンプレート側がデフォルトでエスケープするようになっていれば、べつに何の問題もない。
しかし未来人は一括エスケープするほうがいい方法だと思っているらしい。
引用:
>>310
>少なくともテンプレートの層でエスケープするより
>入り口でエスケープするアプローチの方がスマートだと俺は思うね。
>>336
>まあいずれにしろテンプレートレベルでエスケープするのは
>いい方策ではないと思うがな
その根拠を聞いているのに答えられていなくて、わめいてばっか。
>>372
>ヒントはいっぱい転がってるのにも関わらず理解できない奴に
>これ以上丁寧に説明してやる義理はねーんだよ
どこにヒントが?説明できないだけなのを認めることができないだけだろ?
おまえがちゃんと説明すればいいだけの話。本当にわかってるんなら、そんなに説明が難しいことでもないだろ?
0378nobodyさん
2007/11/01(木) 15:16:48ID:???0379nobodyさん
2007/11/01(木) 15:45:12ID:???回りくどいことをせずに言いたいことを言えばいい
0381nobodyさん
2007/11/01(木) 16:23:49ID:???実現できないことがあるからアドバイスが欲しいの?
代替手段が欲しいと作者にメールしたいの?
0382nobodyさん
2007/11/01(木) 16:29:20ID:???でもそんなのどうしろっていうんだ。
「知らんがな」としか言いようがない。
0383nobodyさん
2007/11/01(木) 16:51:14ID:???記録メディアとしてのパンチカードはかろうじて見たことあるけどなあ
その世代で現役の人いるんだろうか
人ってか仙人だな
0385nobodyさん
2007/11/01(木) 17:23:17ID:???今どうなってるか知らないがいずれciもそうなると思う
symfonyもescaping outputは後から付いたんだよ
0386nobodyさん
2007/11/01(木) 17:27:46ID:???非テンプレ非FWこそ賢者ということが良く分かりました
0387nobodyさん
2007/11/01(木) 17:30:32ID:???0388nobodyさん
2007/11/01(木) 17:38:40ID:???それがPHPだろ
Smartyとかエスケープするだけの自作テンプレートエンジン(爆笑)とか
はやくゴミ箱に捨てろよwww
0390nobodyさん
2007/11/01(木) 17:47:15ID:???パンを挽いて粉に戻して・・・またパン作ってますけどwww
しかもどえらく不味いし
お前ら元々まずいパンをもっとまずくする天才だなw
0391nobodyさん
2007/11/01(木) 17:48:16ID:???これ思い出した
J-CASTニュース : 「オレも裸、オマエも裸になれ」 セクハラ調教師HP大炎上
ttp://www.j-cast.com/2007/10/22012451.html
0393nobodyさん
2007/11/01(木) 17:59:39ID:???むしろ「え?なに一人で裸になってんの?」
あるいは「ちょww王様が裸www」
ま、王様というより乞食だけどなm9(^Д^)プギャー
0396nobodyさん
2007/11/01(木) 20:41:09ID:???答えになってねーよ!
それが理由になるって、間違いなく勘違いー!
コントローラで一括エスケープした場合:
<?php echo $foo; ?> // エスケープされる
<?php echo $sf_data->getRow($bar); ?> // されない
デフォルトでエスケープするテンプレートの場合:
{% $foo %} // エスケープされる
{%% $bar %%} // されない
どこが違うのー?なんで一括エスケープのほうが優れているかの理由になってないー!
これで答えたつもりになってる>>380はアニヲタ以下ーwwww
うまく答えられないから、詳しい説明は必死で避けてるーwwww
0397nobodyさん
2007/11/01(木) 20:44:23ID:???まあニートの趣味グラマってレベルだな
0398nobodyさん
2007/11/01(木) 20:47:12ID:???0399nobodyさん
2007/11/01(木) 21:49:01ID:???>今どうなってるか知らないがいずれciもそうなると思う
未来人の大予言キター!
さすがえらそうにみんなを過去の人扱いしただけのことはあるー!
しかも今どうなってるかしらないくせにCIを「一括エスケープするモダンなフレームワーク」とねつ造してたー wwww
でも>>385がいる未来ではきっと違うーwww それは何年後の未来なのー?
で結局、一括エスケープしてくれるモダンなFWはsymfonyと他になにがあるのー?
>>273
>モダンなFWはだいたいそう
と言い切ってるからほかにもあるんでしょ、はやく教えて>>385www
なんならPHP以外でもいいよー モダンならねーwww
0400nobodyさん
2007/11/01(木) 23:29:28ID:???デフォルトでエスケープするテンプレートとの違いマダー?>>380
0401nobodyさん
2007/11/02(金) 00:56:32ID:???■ このスレッドは過去ログ倉庫に格納されています