【PHP/Laravel】Laravelのエスケープ処理は簡単
blade.php
laravelのエスケープ処理は非常に簡単。二重波括弧で囲んでやるだけ。
<p>{{ $data }}</p>
逆に、エスケープしたくない場合には、!!をつけてやる。
<p>{{!! $data !!}}</p>
エスケープ処理する理由
エスケープ処理とは、文字列として認識させること。コードの中で使う記号などを文字列として扱う。なぜエスケープ処理するかというとXSS攻撃を防ぐため。
You should typically use the escaped, double curly brace syntax to prevent XSS attacks when displaying user supplied data.
Displaying Unescaped Data
XSS攻撃とは悪意のある不正なスクリプトを実行させるもの。例えば、入力フォームにJSのコードをそのまま入力する。掲示板などで一覧データを表示させる際に、エスケープ処理していないと先程入力したコードが実行されて不正な動きをする場合がある。これを意図的に悪意でやるのがXSS攻撃。
htmlspecialchars
phpには、特殊文字を HTML エンティティに変換するhtmlspecialchars()が用意されてる。変換対象となる記号は、&アンパサンド、"ダブルクォート、’シングルクォート、<>。第二引数にフラグを取り、ENT_QUOTESはシングル、ダブルクォートともに変換する。フレームワークを使わない場合、サーバー側でエスケープ処理をしてやる必要があるが、Laravelだと単に括弧で囲んでやるだけなので簡単。
以上