script要素内のエスケープに関する問答

script要素内のエスケープ方法についてのブログ記事に指摘したところから始まる会話をまとめました
6
徳丸 浩 @ockeghem

コメントしましたが、 </script><script>alert(/1/)// でXSSになりますね PHPで呼び出した文字列内の特殊文字で、JavaScriptエラーが出る場合の対処法 | PLUS http://t.co/NyEVvgSZ9T @plus_iさんから

2013-03-04 18:42:11
入江慎吾 / Lancers LLM Labs @iritec_jp

@ockeghem ご指摘ありがとうございます。htmlspecialcharsを使うといったことが適切でしょうか?

2013-03-04 18:45:56
徳丸 浩 @ockeghem

違います。私の本のP111「script要素のXSS」を御覧ください。結構面倒くさいです #wasbook RT @plus_i: @ockeghem ご指摘ありがとうございます。htmlspecialcharsを使うといったことが適切でしょうか?

2013-03-04 18:49:28
入江慎吾 / Lancers LLM Labs @iritec_jp

@ockeghem ご丁寧にありがとうございます!チェックいたします。

2013-03-04 18:51:45
入江慎吾 / Lancers LLM Labs @iritec_jp

@ockeghem 内容を確認後、実際に試してみて、記事を修正いたしました。ありがとうございました。このコードにも問題はあるでしょうか...?http://t.co/irfHkT22DB

2013-03-04 21:33:39
徳丸 浩 @ockeghem

@plus_i 元の、& ' " をエスケープする3つのpreg_replaceは要らないということと、(本当は)a要素のhref属性の中身は、htmlspecialcharsを通すのが正しいのですが、後者は、なくても動作は変わらないので、なくても間違いではない、というとこですね

2013-03-04 21:40:53
入江慎吾 / Lancers LLM Labs @iritec_jp

@ockeghem Unicodeエスケープするので、元のpreg_replaceは不要ということですね。htmlspecialcharsも常に入れるようにした方が忘れないので、記述しておきました。ありがとうございました!

2013-03-04 21:53:57
徳丸 浩 @ockeghem

@plus_i 残念、htmlspecialcharsが後です。その理由は、拙著P110の中段あたりをお読み下さい

2013-03-04 22:00:30
入江慎吾 / Lancers LLM Labs @iritec_jp

@ockeghem 難しいですね。。確認して修正します。ありがとうございます!

2013-03-04 22:03:41
入江慎吾 / Lancers LLM Labs @iritec_jp

【記事を修正しました】PHPで呼び出した文字列内の特殊文字で、JavaScriptエラーが出る場合の対処法 | PLUS http://t.co/irfHkT22DB

2013-03-04 22:08:13
徳丸 浩 @ockeghem

@plus_i コード確認しました。これで大丈夫です!

2013-03-04 22:15:42
入江慎吾 / Lancers LLM Labs @iritec_jp

@ockeghem ありがとうございます!また勉強になりました!

2013-03-04 22:29:29