【Laravel】e関数とは

【Laravel】e関数とは

e関数とは

e関数は、HTMLエスケープを行うためのヘルパーメソッドです。

e関数は、PHPのhtmlspecialchars関数をdouble_encodeオプションにデフォルトでtrueを指定し、実行します。

引用:ヘルパ 8.x Laravel

参考:PHP: htmlspecialchars – Manual

HTMLのエスケープとは、HTML特有の文字(<, >, &など)を、別の文字列に変換することを指します。

単に不具合を防ぐだけでなく、悪意あるコードの挿入やクロスサイトスクリプティング(XSS)攻撃を防ぐためにも、このエスケープ処理が必要です。

使用例

文字列の中にスクリプトが含まれている場合の例が以下です。

$rawString = '<script>alert("Hello!");</script>';$escapedString = e($rawString);
echo $escapedString;

この例では、e関数によってHTMLエスケープされ、alert("Hello!");が実行されないようになります。

この中身が危険なスクリプトになっていることもあるため、文字列がユーザーからの入力を反映するようなケースでは、e関数が重要な役割を持ちます。

Bladeテンプレートでは

Bladeテンプレートでは、通常、{{ $variable }}のような構文を使用して変数を表示します。

Bladeの{{ }}は、デフォルトで変数の値をエスケープして表示します

Bladeの{{ }}エコー文は、XSS攻撃を防ぐために、PHPのhtmlspecialchars関数を通して自動的に送信します。

引用:Bladeテンプレート 10.x Laravel

しかし、明示的にe関数を使用することも可能です。

<div>
    {{ e($content) }}
</div>

上記に使用することで、$content変数の中身がHTMLエスケープされて表示されます。