がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

Zendかこいい!!

ふらりふらり(現実逃避)していると、ふとたどり着きましたゼンド・ジャパン株式会社 技術情報コンテンツ( http://www.zend.co.jp/tech/index.php?Top )。
現状(否応なしに)PHPをやっている(やらされている)身にとっては、Zendさんの資料はよかれ悪しかれ興味のあるものです。
もちろんチェックするですよ。
……………
………

御免謝る俺が悪かった全面的に非を認めるから頼むからやめれ


1.
セッションを使おう( http://www.zend.co.jp/tech/index.php?%A5%BB%A5%AD%A5%E5%A5%EA%A5%C6%A5%A3%BB%D8%BF%CB%2F%A5%BB%A5%C3%A5%B7%A5%E7%A5%F3%A4%F2%BB%C8%A4%AA%A4%A6 )
Zendさまご推奨コーディング


 $username = $_POST['username'];
 $password = $_POST['password'];
 
 //ユーザ認証
 if ( ($_SESSION['auth']) === true && auth_user($username, $password) ){
  $_SESSION['auth'] = true;
  echo '認証成功';
 }else{
  echo '認証失敗';
 }
………え?
こんなに小さなプログラムなのに、胸焼けするほどに問題点を感じるのは俺だけ?
一つだけ。一つだけ言わせてもらうと「セッションハイジャック簡単に出来ちゃうよ?」


2.
SQLインジェクション対策 ( http://www.zend.co.jp/tech/index.php?%A5%BB%A5%AD%A5%E5%A5%EA%A5%C6%A5%A3%BB%D8%BF%CB%2FSQL%A5%A4%A5%F3%A5%B8%A5%A7%A5%AF%A5%B7%A5%E7%A5%F3 )
まぁ大切なんだけどさ。
対策部分の記述より。’が”になったり;が削除されたり。……マジデスカ?


3.
テンプレートエンジンは本当に必要か? ( http://www.zend.co.jp/tech/index.php?cmd=read&page=PHP%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%2FSmarty%2F001%20%A5%C6%A5%F3%A5%D7%A5%EC%A1%BC%A5%C8%A5%A8%A5%F3%A5%B8%A5%F3%A4%CF%CB%DC%C5%F6%A4%CB%C9%AC%CD%D7%A4%AB%A1%A9 )
必要ですで終わるんだけどまぁスキル足りなくて使わない(使えない)人がいるのでそれはまぁそれとしてさ。
魅力で「デザインとロジックの完全な分離」とかって言っておいた舌の根も乾かぬうちに「組み込み関数やマクロ言語の充実」ってどうなのさ?
「テンプレートエンジンの大半は、テンプレートに記述するだけで様々な表現を可能にする、組み込み関数やマクロ言語を実装している。
一般的な組み込み関数として、サニタイズ*2やワードラップ*3などが挙げられる。また、DBMSから取得したデータを格納した配列変数を使って、表組みを行うための制御関数なども用意されている。」
デザインとロジック、全然分離できてないよママン ;;
ちなみにこの辺が理由で、Smarty大っ嫌いですし自分用のMVCエンジン持ってます(様々な言語で全部共通(笑))。ご入用の方はご一報ください。どのみちフリーウェア化する予定なので、何ぼでも差し上げます。


4.
$GLOBALS変数の脆弱性について ( http://www.zend.co.jp/tech/index.php?cmd=read&page=%A5%CE%A5%A6%A5%CF%A5%A6%2F005%20%24GLOBALS%CA%D1%BF%F4%A4%CE%C0%C8%BC%E5%C0%AD%A4%CB%A4%C4%A4%A4%A4%C6 )
とりあえずグローバルなんて「使うな」で終わるのですが。
「注意するスクリプト(設定)の記述例」っていうもののなかに
8.「PEAR.phpを使用している場合」
があるのってどうなんでしょう? ねぇねぇこれって「ご推奨お便利関数&クラス群」ですよねぇ?


流石Zend。技術文書も一味違います。もったりしてコクがない、まるで「戦闘用料理」の如き破壊力です。
………やっぱPHPの未来は暗いかもしれない。