symfonyのセキュリティfixとアドミンジェネレータ


symfony1.2以降のアドミンジェネレータにおいてセキュリティの問題があるため、修正されたものがリリースされています。
詳しくは以下を参照

symfony1.2以降を利用しているサイトであればアップデートしておいた方がよいです。また、symfony1.2以降が対象となっているのは、今回の脆弱性はsymfony1.2以降で標準で用意されているフォームフレームワーク(sfForm)が原因となっているからのようです。

symfonyのアドミンジェネレータって?

ついでなので、symfonyのアドミンジェネレータについて説明を。

symfonyには様々な機能がありますが、その1つの目玉となる機能がアドミンジェネレータです。
ちなみにsymfonyにはジェネレータとアドミンジェネレータの2種類があります。

  • ジェネレータ
    • propel:generate-crud, doctrine:generate-crudのこと
    • CakePHPでいうbakeに相当。*1
    • 自動生成されたファイルを直接編集することでロジックに変更を加える。
    • タスクを2度実行すると上書きされて、初期の状態に戻ってしまう。
  • アドミンジェネレータ
    • propel:generate-admin, doctrine:generate-adminのこと
    • MySQLでいうphpMyAdminが高機能になったようなものが作成可能。
    • 基本は設定ファイル(generator.yml)で表示項目、表示名、検索フォームの設定などが行える
    • 必要があれば、アクションメソッドを上書きするファイルを用意することでロジックの変更も可能。
    • タスクを2度実行しても修正を加えた処理、設定はそのままでモデルの変更を反映させることが可能。*2

高機能が故に、理解し、使いこなすのは大変ですが、symfonyを使えばphpMyAdminのようなページがすぐに用意でき、場合によっては使い捨てではなく、カスタマイズすることで案件でも利用できるっていうのは便利だと思います。

symfonyのアドミンジェネレータに関する参考ページ

*1:CakePHPを焼く」と言ったりするのに対して表現すると、「symfonyを奏でる」(propel:play-crud)って感じでしょうか。。違和感たっぷり。

*2:自動生成されたロジックはキャッシュとして作成される