- ベストアンサー
クロスサイトスクリプティングについて
お聞きしたい事があるのですが、MYSQLを使ってデータを表示させてるんですが、その際htmlspecialchars()を使ってHTMLタグをエスケープしろって先輩に言われました。(本当にデータを表示させてるだけです ) なぜ?なのかずっと考えても分かりませんでした。 どなたか回答お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まぁ、心配しょうな方なのでしょう。 でも、基本的に外部から来たデータや、すでにあるデータでも汚染されていると考える事は大切です。 と、言うのも、何かエラーがや思った通り動かない場合、できるだけ不審な点や不可解な点は少ない方がいいからです。 ようは基本です。 基本がしっかりできてないと、発展したときにミスを犯すからです。 先輩は、そのシステムをもっと、別の用途に使おうとしているのかもしれませんし。 入力はどうんなかんじ? 入力の時には、htmlspecialchars()をかけてるのなら、出力の時はいらないかなー?とも、思うけど。 入力が手打ちだったり、何かのエクスポートだった場合には、少し不安ですねー。 まぁ、レイアウトが崩れるくらいかもしれませんが、かっこわるいので。
その他の回答 (1)
- zwi
- ベストアンサー率56% (730/1282)
回答No.1
PHPは本業ではないので想像で書いてみます。 MYSQLに入っている文字列データが本当に信用できるなら不要でしょう。どこから入力されたもので、何らかの攻撃でhtmlタグが埋め込まれる可能性があるならhtmlspecialcharsを掛けて置くのが正しいのでは? 誰が入力時にミスするか分りませんし、内部犯行も可能性として捨て切れません。あるいはMYSQLへの追加時入力のデータのガードが甘いかもしれません。