symfonyのエスケープ設定
symfonyにはXSS対策として、アサインした変数の値をテンプレートで利用するときにエスケープする設定があります。
しかし、この機能自体は途中で実装されたため、symfony1.0ではデフォルトではBC(後方互換モード)に設定されています。
bothモード
というようになっています。
なんともややこしやですが。。つまりはデフォルトの設定ではなくbothを指定すべきで、エスケープされていない値が欲しいときは
$sf_data->getRaw('hoge')
とするようにすべきなんです。
と、なぜにこんな話を書いているかというと、symfony1.1ではこのエスケープ設定がonとoffの2種類になります。
ref: http://trac.symfony-project.com/changeset/8201
ref: http://trac.symfony-project.com/changeset/8260
デフォルトはoffになるそうなんですが、これがbcと同等のようです。
そして、onがbothと同等のようで、いままでのon,offとは意味合いが異なります。
というわけで、今後のescaping_strategyは
- symfony1.0 なら both
- symfony1.1 なら on
で開発しましょうというメモ