XSS対策:jQueryでのエスケープ

スポンサーリンク

※当サイトは広告を利用しています。

例えば以下のようにjavaScript上でhtml要素を出力するような処理がある場合、クロスサイトスクリプティング対策としてvalueの内容をエスケープ処理する必要があります。
$(“test”).html(value);

ただJQueryの関数などで直接行う方法が無いようです。
したがって、「$.text() 関数を使うとブラウザが勝手にエスケープ処理を行ってくれる」という処理を利用します。




こんな関数を作ります。(ダミー領域のtextにパラメータを一度セットし、そのhtml要素を返す。)
var escapeHTML = function(val) {
&nbsp&nbsp&nbsp&nbsp&nbsp&nbspreturn $(‘<div />’).text(val).html();
};

こうやって使用します。
value = escapeHTML(value);
valueの内容に<script>xxx</script>等のjavaScript文字列が含まれていた場合もエスケープ処理が施されます。
賢いですね~。

以下を参考にさせていただきました。
http://hiromitz.jimdo.com/2010/07/01/jquery-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6html%E3%82%BF%E3%82%B0%E3%82%92%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%81%99%E3%82%8B/
text(val) - jQuery 日本語リファレンス


 

コメント

タイトルとURLをコピーしました