#navi_header|JavaScript| [[989]]関連メモ。 JavaScriptのDOM操作で文字列をDOM要素として出力する方法について、HTMLタグをエスケープしてくれるか調べてみた。 HTMLタグが混ざっている文字列をDOMのText要素として出力するということは、それ自体が違和感がある。 HTMLタグを使っているのならば、それぞれのタグに応じた要素を一つずつ組み立てる必要があるのでは? そうではなく、あくまでも「文字列」としてHTMLタグを出力したい時、どうなるか、という実験。 結果: : HTMLタグのエスケープ無し :#block||> - HTML要素のinnerHTMLへの代入 ||< : HTMLタグのエスケープ有り :#block||> - Text要素のnodeValueへの代入 - document.createTextNode() - jQuery.text() ||< 検証環境: OS : Win7Pro SP1 32bit 日本語版 ブラウザ: Firefox 5.0 Chrome 12.0.742.100 IE 9.0.1 検証コード: #code|html|> jQuery XSS Test




result:

foobar

barbaz


hash!

after "hash!" link click:

||< innerTextは未検証。 #navi_footer|JavaScript|