• ベストアンサー

ヒアドキュメントと、htmlspecialcharsの違いを教えて下さい。

PHPのセキュリティを強化しようと勉強しているのですが わからないことがあります。 セキュリティの本には、変数の出力の場合は、 htmlspecialcharsで書くべきと載っていますが、 これまでヒアドキュメントで書いていた部分も、 htmlspecialcharsに直す必要があるのでしょうか? ■ヒアドキュメント echo<<<EOD $hogehoge EOD; ■htmlspecialchars echo htmlspecialchars($hogehoge,ENT_QUOTES,'UTF-8'); この二つの違いと、 どちらがセキュリティとして良いかのかを教えて下さい。

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

  • ベストアンサー
  • livrekun
  • ベストアンサー率47% (9/19)
回答No.3

$hogehoge = "<><>"; だとして echo htmlspecialchars($hogehoge, ENT_QUOTES, 'UTF-8'); だと &lt;&gt;&lt;&gt; が出力されます。 echo<<<EOD $hogehoge EOD; だと <><> が出力されます。 ヒアドキュメントを使う最は $hogehoge = htmlspecialchars($hogehoge, ENT_QUOTES, 'UTF-8'); echo<<<EOD $hogehoge EOD; のようにする必要があります。 どちらが良いとは言いがたいですが、ヒアドキュメントを使う際にもhtmlspecialcharsを通す必要があります。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ヒアドキュメントとhtmlspecialcharsは別のことをしていますね? 書きかえても意味がないでしょう。 ヒアドキュメントするところはヒアドキュメント、 htmlspeacialcharsするところは以下同。 かりに$hogehogeの中にタグが入っており、それをブラウザ上で 確認したいばあい、どうみたいかによって処理はかわります

回答No.1

$hogehoge= htmlspecialchars($hogehoge,ENT_QUOTES,'UTF-8'); echo<<<EOD $hogehoge EOD; 両方使えばいいのでは?

関連するQ&A