Laravelでアウトプットフィルター

タグ: Laravel3  

セキュリティーの観点からLaravelのHTMLクラスとFormクラスの出力は、e()ヘルパーを通されています。

e()ヘルパーの実態は,PHPのhtmlentities()関数です。ですから、これらのクラスメソッドを通さずに、ユーザーの入力を出力する場合は、自分でe()を通してください。

さて、出力を古いガラゲーに送るためコード変換するとか、もっとセキュリティーを強化するためにフィルターに通したいと思っているのでしたら、afterフィルターを使いましょう。

afterフィルターは各ルートの定義時に指定できますし、コントローラに対するものは、コントローラークラス内で指定することもできます。

もし、全ルートを通る出力に対してフィルターを通したい場合は、routes.phpで定義します。例えば、出力中のLaravelFuelPHPに変換したい場合は、次のようにします。

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