現在、可能性のある XSS 攻撃から文字列を消去するために、jQuery ソリューションでこのメソッドを使用しています。
sanitize:function(str) {
// return htmlentities(str,'ENT_QUOTES');
return $('<div></div>').text(str).html().replace(/"/gi,'"').replace(/'/gi,''');
}
しかし、私はそれが十分に安全ではないと感じています。私は何かが恋しいですか?
ここで phpjs プロジェクトの htmlentities を試しました: http://phpjs.org/functions/htmlentities:425/
しかし、ちょっとバグがあり、いくつかの追加の特別なシンボルを返します. もしかして古いバージョンですか?
例えば:
htmlentities('test"','ENT_QUOTES');
プロデュース:
test&quot;
しかし、次のようにする必要があります。
test"
これをJavaScriptでどのように処理していますか?