phpなら、htmlspecialcharsで出来ますが、javascriptには該当するようなものがないようです。
javascriptで受け取ったformの値をそのままdhtmlでhtml書き換えを行うときに、<script>alert('hoge');</script>など入力されても実行されないようにしたいと思います。
最悪、正規表現で<や>を実態参照に置き換える予定です。
よろしくお願いします。
window.toStaticHTML関数がIE8から存在します。言っていることはそれでできます。
ただ、これの関数はクロスブラウザなものではありませんし、JavaScript実装もちょっと見あたりません。また、サニタイズされた結果も意図しないものになるかもしれません。
無難に実体参照に置き換えることを行った方が良いでしょう。
基本的には自作するしかないです。
こちらが参考になるかと思います。
escapeHTML の実装 3 パターン (ベンチマーク付き) - (new Hatena).blog()
prototype.jsのString.escapeHTMLのように実装済みのメソッドとして提供されているものを活用すると言うのも一つの手です。
http://chargma.spaces.live.com/blog/cns!2839DAA143E306A1!166.entry
でやっているように、
function escape_html_tag(string) { return string.replace(/[&<>"']/g, function(match) { return { '&' : '&', '<' : '<', '>' : '>', '"' : '"', "'" : ''' }[match]; }); }
とやればどうでしょうか?
こうすることでタグ周りはサニタイズされるのでjavascriptも実行されることがありません。
コメント(0件)