mysqlからselectして$postに格納
web page上に、
<?php echo htmlspecialchars($post['text'], ENT_QUOTES, 'UTF-8');?>
で出力する。
これはどの書籍でも載っていることで理解できます。
【ここから質問】
ふとxssの攻撃に関していろいろ見ていて思ったのですが、
ユーザーの入力などがない、今回のケースのような場合、
mysqlからselectして$postに格納
web page上に、
<?php echo $post['text']; ?>
と記載した場合に危険性はあるのでしょうか?
【なぜこのように書いたか背景】
textの内容を改行したいのですが、
<?php echo nl2br(htmlspecialchars($post['text'])); ?>
など記述してもダメで・・・・
だったらということでやってみました。
素人の私ですが、
アドバイスいただけると幸いです。
$postの値がどこから来たかは関係なく、HTMLコードをhtmlspecialcharsして出力するならば、それは安全です。
提示されたコードで改行できないとの事ですが、そのコードに問題はありません。
改行コード部分で改行されます。
$post['text']の内容を提示して頂ければ、改行されない理由がわかるかと思います。
$postの値がどこから来たかは関係なく、HTMLコードをhtmlspecialcharsして出力するならば、それは安全です。
提示されたコードで改行できないとの事ですが、そのコードに問題はありません。
改行コード部分で改行されます。
$post['text']の内容を提示して頂ければ、改行されない理由がわかるかと思います。
ありがとうございます!
調べてみます!
echo $post['text']; では、外部のページに細工して、
postで絶好調さんの作ったページに遷移した場合に
javascriptでもiframeでも、やりたい放題になってしまいますから、
セキュリティ上、危険です。
echo nl2br(htmlspecialchars($post['text']));
で動くはずですので、
$post['text']に、きちんと改行コードが入っているかどうか、
出力されたソースコードに
または
が入っているかどうか、
確認されてはいかがでしょうか。
または・・・の後に、うっかりbrタグそのまま書いちゃったので、
見えませんね。(笑)
ソースコードに<br>または<br />タグが入っているかどうか
確認して下さい。
です。
ありがとうございます!
危険性はあるのでしょうか?
落とし穴は思わぬところにあるものよ。だから危険性は無いなんて断言は誰にもできないわ。できることはやっておくことね。
内容を改行したい
WordPressのフィルタかしらね?
いくつか対策はあるみたいだけど該当するものあるかしら?
https://www.google.co.jp/search?q=wordpress+%E6%94%B9%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84
危険は常にあるということですね
ありがとうございます!
ありがとうございます!
2014/03/13 10:02:17調べてみます!