シングルクォートもきちんとエスケープする - 素人がプログラミングを勉強するブログ

screenshot

シングルクォート(')をエスケープせずXSSの原因になっているサイトをけっこう見かけたので、どういう時問題になるのか書いておく。 JavaScriptの文字列を動的に埋め込む場合。 <script> var q = 'hoge&#34;fuga'; document.getElementById('word').appendChild(document.createTextNode(q + 'の検索結果')); </script> のように、変数に代入する文字列を動的に作っている場合、RubyCGI.escapeHTMLとか、PHPの...

http://d.hatena.ne.jp/javascripter/20081113/1226573185

コメントしました
高木先生の言うとおり、JavaScript 内に埋め込まないことがベストかな。自作スクリプトを作るときには気をつけよう。
JavaScriptコード上に埋め込まないようにするのがおそらく最も正しい。どうしてもそれが必要な場合というと何があるだろうか。
コメント
CDATAセクションは盲点かもねー。RSSとかで攻撃されそう。

http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/javascripter/20081113/1226573185