• ベストアンサー

クロスサイトスクリプティングについて

お聞きしたい事があるのですが、MYSQLを使ってデータを表示させてるんですが、その際htmlspecialchars()を使ってHTMLタグをエスケープしろって先輩に言われました。(本当にデータを表示させてるだけです ) なぜ?なのかずっと考えても分かりませんでした。 どなたか回答お願いします。

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

  • ベストアンサー
  • c_crimer
  • ベストアンサー率34% (12/35)
回答No.2

まぁ、心配しょうな方なのでしょう。 でも、基本的に外部から来たデータや、すでにあるデータでも汚染されていると考える事は大切です。 と、言うのも、何かエラーがや思った通り動かない場合、できるだけ不審な点や不可解な点は少ない方がいいからです。 ようは基本です。 基本がしっかりできてないと、発展したときにミスを犯すからです。 先輩は、そのシステムをもっと、別の用途に使おうとしているのかもしれませんし。 入力はどうんなかんじ? 入力の時には、htmlspecialchars()をかけてるのなら、出力の時はいらないかなー?とも、思うけど。 入力が手打ちだったり、何かのエクスポートだった場合には、少し不安ですねー。 まぁ、レイアウトが崩れるくらいかもしれませんが、かっこわるいので。

その他の回答 (1)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

PHPは本業ではないので想像で書いてみます。 MYSQLに入っている文字列データが本当に信用できるなら不要でしょう。どこから入力されたもので、何らかの攻撃でhtmlタグが埋め込まれる可能性があるならhtmlspecialcharsを掛けて置くのが正しいのでは? 誰が入力時にミスするか分りませんし、内部犯行も可能性として捨て切れません。あるいはMYSQLへの追加時入力のデータのガードが甘いかもしれません。

関連するQ&A