jQuery による DOM based XSS 対策

in-place-editor なんかでユーザ入力文字を、DOM上に挿入する場合、こんな関数作って呼んでた

var escHTML = function( text ){
	return text.replace(/&/g, '&')
		.replace(/</g, '&lt;')
		.replace(/>/g, '&gt;')
		.replace(/"/g, '&quot;');
};

Web+DB Press Vol63 によると、「'」や「`」もエスケープしなきゃいけないようで以下のようになる。

var escHTML = function( text ){
	return text.replace(/&/g, '&amp;')
		.replace(/</g, '&lt;')
		.replace(/>/g, '&gt;')
		.replace(/"/g, '&quot;')
		.replace(/'/g, '&#39;')
		.replace(/`/g, '&#96;');
};

jQueryを使ってもできるということで、以下のような感じになるようだが

var escHTML = function( text ){
	return $('<span/>').empty().text(text).html();
};

「`」「"」「'」はエスケープされない・・・

結論

こんなプラグインがあればいいのかな?

$.escHTML = function( text ){
	return $('<span/>').empty().text(text).html()
		.replace(/"/g, '&quot;')
		.replace(/'/g, '&#39;')
		.replace(/`/g, '&#96;');
};
$.fn.escHTML = function(){
	return $.escHTML(this.html());
};

別にエスケープだけが目的なら、ここまで書いて無理やりjQuery使う必要もない気がするけど