PHPでのエスケープ処理

カテゴリ:インターン生ブログ

公開日:2020.06.26 最終更新日:2020.06.25
このエントリーをはてなブックマークに追加

こんにちは!インターン生の西です!今回はPHPでのエスケープ処理について紹介していきたいと思います!

1.エスケープとは

エスケープ処理とは、スクリプト言語等の文字列を別の文字列に置き換えることです。この処理をしないとHTMLタグやスクリプトが実行されてしまうので、このようなクロスサイトスクリプティング(XSS)攻撃を防ぐためにはエスケープ処理が必須なのです!

2.PHPでエスケープする方法

エスケープ処理にはさまざまな方法がありますが、今回はその一部を紹介していきます。

・htmlspecialchars関数

この関数の使い方は、「htmlspecialchars(エスケープする文字列、エスケープの種類、文字コード);」となります。この関数の第二引数は、基本的にエスケープしてくれる文字が多い「ENT_QUOTES」を指定しましょう。また、毎回記述するのは面倒なので短い関数名にしておきましょう。

・replace関数

ここでは「str_replace」について紹介します。記述方法は「str_replace(‘置換対象の文字列’ , ‘置換後の文字列’ , ‘置換対象の文字列が含まれている部分’)」のようになります。わかりやすく置換すると下の画像のようになります。

そして、スクリプト言語等の記述が反映されないようにするためには下の画像のように記述するようにしましょう。

・addslashes関数

ここでは文字列を変数に入れて、その変数をaddslashes関数に渡すという処理をしています。この関数では渡された変数のエスケープシーケンスに含まれる文字や記号を自動的にエスケープしてくれます。

3.最後に

エスケープ処理をする場面は改行などを記述する際にも出てきます。そのようなときは以下のようなエスケープシーケンスを利用するということも覚えておきましょう。

改行\n
左括弧
\(
右括弧\)
左角括弧\[
右角括弧\]
シングルクォーテーション\’
ダブルクォーテーション\”
\\
ドル\$

一覧へ戻る