• ベストアンサー

htmlspecialcharsの使い時

phpでhtmlspecialcharsを使ってタグの無効化をするとセキュリティーが向上するとあったのですが、フォームからのデータを読み込んで保存する時に使うのが良いのでしょうか? それとも保存時は何もせずに表示する時にこの関数を通すのが良いのでしょうか? 自分は保存時にこの関数を通すと思っていたのですが、翔泳社のPHP入門教室10日で覚えるシリーズのサンプルではDBからデータを読み込んで表示する時にこの関数を通していました。 こちらのほうが正解なのでしょうか。 よろしくお答えください。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5241/13712)
回答No.2

表示する時に使う方がいいのではないでしょうか。 htmlspecialcharsの本来の目的は”<”、”>”などの特殊文字をHTMLエンティティに変換して、ブラウザにタグでは無く文字としてその記号を表示させる事です。 データとしては記号そのものがDBに入っているのが正しい状態で、その記号をブラウザがHTML記述上の特殊文字として扱わないようにHTMLエンティティに変換してブラウザに渡すという処理にすると考えたらいいと思います。

_rakuda_
質問者

お礼

データとしては返還前の入力値そのものが入っているのが正しい状態なのですね。 ありがとうございます。

その他の回答 (2)

noname#244856
noname#244856
回答No.3

出力するタイミングで使うのが正解。 http://note.chiebukuro.yahoo.co.jp/detail/n149597

_rakuda_
質問者

お礼

リンク先見ました。 出力する際にはとありましたので保存のタイミングではないのですね。 ありがとうございました。

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

エスケープは「必要なときに必要なエスケープを行う」のが基本です。 ∴ htmlspecialcharsは『表示するときに』使うべきです。

_rakuda_
質問者

お礼

ありがとうございます。 必要なときは表示の時ですね。

関連するQ&A