昨日無事終了した第5回 PHP 関西セミナー。今回もダイジェスト形式でお送りします。
(1) PHP アプリケーションの脆弱性 (大垣さん)
o 基本の説明
o 最近の PHP アプリケーションの脆弱について検証しよう
o PEAR XML_RPC
- 外部からのコード実行ができる
- eval 実行は危険がいっぱい
o CMS Made Simple
- 不用意に GET/POST の値を別の変数に挿入しない
o Simple PHP Blog
- 「不可リスト」記述ではなく、「許可リスト」の記述を!
- 不可の内容は一杯ありすぎる、いつか洩れが発生する
o phpLDAPAdmin
- 単純なコーディングミス
- セキュリティ関連の設定と整合性は何度でもチェックすること
- この手のチェックは XP, ペアプログラミングすることで回避確率大幅アップ
o AutoLinksPro
- SimplePHPBlog と同じミス
o EXIF
- Image に付加されたテキスト情報
- 外部入力値は何も POST/GET, COOKIE, SERVER だけじゃない
-- 直接出力すると XSS の危険
-- DB なら SQL Injection
o NETQuery
- シェルコマンドを実行される
- magic_quote_gpc = true であることが前提なアプリが多い
o RunCMS
- 思いがけない変数上書き
- extract() は register_globals = true と一緒
o phpBB
- 利用者多し
- ホールだらけ
- eval による穴
- 複雑な HTML 出力許可はやはり難しい
o どこで脆弱が発生するのか
o 脆弱性の傾向
- XSS, SQL Injection
- レポート時に同一アプリに対する複数の内容
- 単純なコーディングミス
- 複雑なコーディングによるミス
- PEAR による雪崩式がこのたび発生
o まとめ
- まずはやはり基本は重要
- 特効薬などない => よって普段からの情報収集重要
- Sanitize という概念は間違えている
o 余談
- グラフィックテキストは安全か => 解析早し
- 暗号表は安全か => パターン出せば余裕
- クライアント認証は安全か => スパイで
- よって Web 環境でのサービス保障など無理
上記内容の一部について、その詳細が大垣さんの Blog に書いてあります。セキュリティに関して、「口をすっぱくして何度も言ってるじゃないか!」と言ってました(笑)
(2) Web アプリケーション向け GUI ツールキットとしての XUL (下田さん)
o よくある GUI ツールのお話
o FLASH
- お金かかる
- 技術が必要
o JAVA
- 自由度は高い
- 設計めんどい
- でかい
o HTML
- 貧弱
- 凝り始めると途端にめんどい
o XUL とは
- XML Userinterface Language
- テキストベース
- デバッグ環境は揃っている
o XUL サンプル
o XUL だけでは何もできない
- javascript は必要
- バックグラウンドシステムの他言語
o GUI 開発に特化している
o Mozilla しかダメ!
- んじゃ Firefox 使わせればいいじゃない!
- 業務アプリとしてならばかなり有効
o 質疑応答
- OS 互換性は OK (ただし凝った事をすると若干差はでる)
- 文字コードはなんでも
DHTML + javascript で「ぎゃー!」と言いながら書かなければならないような機能がさらさらっと書けてしまうというのは素晴らしい。それらが標準で搭載されている。もちろん javascript を加えて +α もできる。AJAX 仕様にすればネイティブアプリ並なことができそう。名前は聞いたことあったけど、ここまで面白いものとは知らなかった。ほんと、Mozilla オンリーじゃなければ世の中これで溢れ返っているところなんだろうなあ。
(3) PHP カンファレンス 2005 + LLDN (高橋さん)
o PHP カンファレンス 2005 報告
- 午前は基礎セクション
- 午後は中級以上セクション
-- フレームワーク
-- PHP5 への移行と今後
- 懇親会熱い
o LLDN
- 濃すぎ
- PHP 特徴なさすぎ
- やはり Ruby on Rails
- Pugs
-- Haskell による Perl6 実装
-- 本元 Perl 6 が動いてないのにこっちは動いている
-- Haskell の勉強がてら作ったらしい (しかも 24歳。本当に「天才」みたい)
- 夜はもっととんでもなかったらしい
この手のイベントは東京開催なんだけど、やっぱ無理やり時間作ってでもいかんとダメだな。
しかし RoR といい、Pugs といい、20代前半の人間が LL に風穴を開けているというのは凄いな。というかそうなってみたいもんだ。
(4) Maple 新機能 (高橋さん)
o DI の説明
o AOP の説明
- 設定ファイルでの記述は今のところ、
[<関数名> = advice:<コンポーネント>]
- 関数名箇所は正規表現あり
o ActiveRecord
- 今のところ Pear DB でテーブル構成を取得して DTO を決定してるみたい
o これらをデモ実行
o Maple は PHP4 系でまだまだいく
o AOP が好評だったら外に出してもいい
o AOP まわりが導入されれば変更が大きいので 4.0 リリースという形になるだろう
えー項目が少ないですが別に内容がなかったということでは決してありません :) デモに見入っていたし、ダイジェストとしてデモ実行の詳細をグリグリ書いても仕方ないし。
ActiveRecord がこの度お目見えってことで一部な人は色々聞きまくってました。ワシも懇親会で数点。DTO 部分もそこで分かった。とりあえず 3.0.1 に向けてパッチ送らないといかん。
(5) 懇親会 (という名の宴会)
o 使っているエディタは?
- Emacs マンセー!
- vi マンセー!
- 上記2大宗教のバトルはなく、お互いに認める優良エディタ
- 「外出先 Windows 環境なら、サクラエディタいいよ」x N => 「何だそれは!?」
o PHP の今後
10月にはKOS2005, そして関西セミナーとしての次回は忘年会をかねた開催になりそうです。