0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel の Blade であっという間 XSS対策

Last updated at Posted at 2025-08-04

昔の自分へ

こんにちは!
この記事では、Laravel における HTMLエスケープ について、学生時代の自分の体験も交えながらまとめてみます。

🌱PHPだけでバックエンドのコードを書いていた頃

私は学生時代、学習のためPHP単体でWebアプリケーションのバックエンド開発をしていました。
その頃は、HTMLエスケープの重要性は理解していたけど…

  • htmlspecialchars($str, ENT_QUOTES, 'UTF-8') をいちいち書くのが面倒
  • だから毎回書き忘れないように自作で関数を用意していたがそれを呼び出すのすら面倒
  • 「どこで使ったか/使ってないか」が曖昧になって不安

今思えばXSS対策を意識していたけど、その手間で開発自体がストレスになってしまっていたわ…と思います。

昔の自分に言いたい「Blade使ってごらん」って。

Laravelに触れたとき、まず感動したのが{{ $value }}です。
これはGETした変数の値をHTMLエスケープするための記述ですが、意味は以下の表のようになっています。

エスケープ Blade構文 意味
する {{ $value }} htmlspecialchars() 相当の処理を内部で自動的に実行
しない {!! $value !!} エスケープせずにそのままHTMLとして出力
本当に安全なデータにのみ使用

1行で完結です。すごい。
Laravelを使うことで、安全性・保守性・開発効率がグンと向上します。

用語整理

自分用メモです。(解説記事などによく出てきてたまに混乱するので)

用語 目的 いつ使う?
エスケープ データを安全に表示するために変換する
(XSS防止)
データを
「表示する時」
バリデーション 入力が正しい形式かをチェックする データを
「受け取る前」

おわりに

Laravelに触れる前にPHP単体で地道に開発していた経験があったので、割とすんなり理解できてよかったです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?