【えすけーぷしょり】
エスケープ処理 とは?
最終更新:
💡 特別な記号を、使う場所に合った文字表現へ
特別な意味を持つ文字を、使う場所に合った表現へ変換して文字として扱う処理。HTMLの文字表示を例に、文脈による違いと、SQLのパラメーター化やHTMLのサニタイズとの役割の違いを説明します。
📌 このページのポイント
エスケープ処理は、何を変えるの?
一度変換すれば、どこでも安全?
HTMLの本文、属性、JavaScript、URLでは、解釈のされ方が違うよ。ある場所向けの変換を別の場所に使っても十分とは限らない。フレームワークの自動エスケープも、保護してくれる範囲を確かめよう。
太字などのHTMLを残したい場合は?
SQLの文字も、手作業で変えればいい?
SQLインジェクション対策では、入力文字の置き換えだけに頼らないでね。パラメーター化クエリでSQLの構造と値を分けて渡すのが基本。ORMでも生のSQLを組み立てる機能などは確認が必要なので、「使っているだけで全て安全」とは考えないようにしよう。
まとめ:ざっくりこれだけ覚えればOK!
「エスケープ処理」って出てきたら「特別な記号を、使う場所に合った文字表現へ変える処理」と思えばだいたいOK!
📖 おまけ:英語の意味
「Escape」 = 特殊な意味から逃がす
💬 構文で特別な働きをする文字を、データとして扱える表現にするイメージです。どんな場所でも同じ変換でよい、という意味ではありません。