- ベストアンサー
htmlspecialcharsの使い時
phpでhtmlspecialcharsを使ってタグの無効化をするとセキュリティーが向上するとあったのですが、フォームからのデータを読み込んで保存する時に使うのが良いのでしょうか? それとも保存時は何もせずに表示する時にこの関数を通すのが良いのでしょうか? 自分は保存時にこの関数を通すと思っていたのですが、翔泳社のPHP入門教室10日で覚えるシリーズのサンプルではDBからデータを読み込んで表示する時にこの関数を通していました。 こちらのほうが正解なのでしょうか。 よろしくお答えください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
表示する時に使う方がいいのではないでしょうか。 htmlspecialcharsの本来の目的は”<”、”>”などの特殊文字をHTMLエンティティに変換して、ブラウザにタグでは無く文字としてその記号を表示させる事です。 データとしては記号そのものがDBに入っているのが正しい状態で、その記号をブラウザがHTML記述上の特殊文字として扱わないようにHTMLエンティティに変換してブラウザに渡すという処理にすると考えたらいいと思います。
その他の回答 (2)
noname#244856
回答No.3
出力するタイミングで使うのが正解。 http://note.chiebukuro.yahoo.co.jp/detail/n149597
質問者
お礼
リンク先見ました。 出力する際にはとありましたので保存のタイミングではないのですね。 ありがとうございました。
- agunuz
- ベストアンサー率65% (288/438)
回答No.1
エスケープは「必要なときに必要なエスケープを行う」のが基本です。 ∴ htmlspecialcharsは『表示するときに』使うべきです。
質問者
お礼
ありがとうございます。 必要なときは表示の時ですね。
お礼
データとしては返還前の入力値そのものが入っているのが正しい状態なのですね。 ありがとうございます。