Laravelでアウトプットフィルター
タグ: Laravel3
セキュリティーの観点からLaravelのHTMLクラスとFormクラスの出力は、e()
ヘルパーを通されています。
e()
ヘルパーの実態は,PHPのhtmlentities()
関数です。ですから、これらのクラスメソッドを通さずに、ユーザーの入力を出力する場合は、自分でe()
を通してください。
さて、出力を古いガラゲーに送るためコード変換するとか、もっとセキュリティーを強化するためにフィルターに通したいと思っているのでしたら、after
フィルターを使いましょう。
after
フィルターは各ルートの定義時に指定できますし、コントローラに対するものは、コントローラークラス内で指定することもできます。
もし、全ルートを通る出力に対してフィルターを通したい場合は、routes.php
で定義します。例えば、出力中のLaravel
をFuelPHP
に変換したい場合は、次のようにします。
Route::filter('after', function($response) { if ( in_array($response->status(), array('200'))) { $response->content = str_replace('Laravel', 'FuelPHP', $response->content); } });
これで、Laravelのデモを見ると、一気にFuelPHPのデモになります。 :D
Laravelのドキュメントを見ると、FuelPHPのドキュメントに見えます。 :D