プロが教える店舗&オフィスのセキュリティ対策術

お聞きしたい事があるのですが、MYSQLを使ってデータを表示させてるんですが、その際htmlspecialchars()を使ってHTMLタグをエスケープしろって先輩に言われました。(本当にデータを表示させてるだけです


なぜ?なのかずっと考えても分かりませんでした。
どなたか回答お願いします。

A 回答 (2件)

まぁ、心配しょうな方なのでしょう。


でも、基本的に外部から来たデータや、すでにあるデータでも汚染されていると考える事は大切です。
と、言うのも、何かエラーがや思った通り動かない場合、できるだけ不審な点や不可解な点は少ない方がいいからです。

ようは基本です。
基本がしっかりできてないと、発展したときにミスを犯すからです。

先輩は、そのシステムをもっと、別の用途に使おうとしているのかもしれませんし。

入力はどうんなかんじ?
入力の時には、htmlspecialchars()をかけてるのなら、出力の時はいらないかなー?とも、思うけど。
入力が手打ちだったり、何かのエクスポートだった場合には、少し不安ですねー。
まぁ、レイアウトが崩れるくらいかもしれませんが、かっこわるいので。
    • good
    • 0

PHPは本業ではないので想像で書いてみます。


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!