Top / PHP / 特殊文字のエスケープ

特殊文字のエスケープ

Web画面からの入力を確認画面に表示したり
データベースに取り込んだりする際に、特殊文字を自動的に変換する技法。

  • 変換後の文字列=htmlspecialchars(変換したい文字列,オプション);
  • 戻した文字列=htmlspecialchars_decode(変換された文字列,オプション);

オプションを省略すると、'や''は変換しません。
オプションに2を指定すると、'のみ変換します。
オプションに3を指定すると、'も''も変換します。

< や >、&をそのまま表示しようとするとhtmlタグ解釈されてhtml画面が壊れてしまいます。また、'や"はSQL文の区切りにも使われるため、'や''が入ったデータをそのままデータベースにデータとして保存しようとするとSQL文が解釈できずにエラーとなってしまいます。この不具合をねらってSQLインジェクションを仕掛けられる危険性もありますので、htmlspecialcharsによる変換か、mysql_real_escape_stringなどによる変換を必ずかけるようにしましょう。また文字コードはSJIS以外を使う、SQL文の変数は必ずシングルクォーテーションで囲む等の注意も必要です。

2019-07-01 (月) 11:39:41タグ: 特殊文字 エスケープ

閲覧回数 昨日:0pv TOTAL:3453pv