我正在使用keyup()事件创建窗体:用户键入的每个字符都立即显示在同一页面上的另一个div上。如何防止keyup()jQuery事件的XSS?
它容易受到XSS的影响。我如何使用jQuery来保护它?
注意:在我的表单中,我只使用拉丁字母数字字符,以及逗号,分号,冒号。
我从OWASP搜索了“改革”工具,但有没有更好的方法?
在此先感谢。问候
我正在使用keyup()事件创建窗体:用户键入的每个字符都立即显示在同一页面上的另一个div上。如何防止keyup()jQuery事件的XSS?
它容易受到XSS的影响。我如何使用jQuery来保护它?
注意:在我的表单中,我只使用拉丁字母数字字符,以及逗号,分号,冒号。
我从OWASP搜索了“改革”工具,但有没有更好的方法?
在此先感谢。问候
有几个可用的细节:记住,你不必使用jQuery的HTML“解析”的一切。而不是使用.html()
,使用DOM操作和.text()
(它们通常也更快)。例如:如果这是不可能的
$('#result').text($('<span>').addClass('whatever').text(someInput));
,你也可以做到完美无瑕的HTML与.text()
设置,然后用.html()
取它逃脱:
$('#result').html('<span class="whatever">' + someInput + '</span>');
将成为这一点。例如,这样的:
var data = 'This text: **is bold**';
$('#result').html(data.replace(/\*\*(.+?)\*\*/g, '<b>$1</b>'));
会变成这样:
var data = 'This text: **is bold**';
$('#result').html(data.replace(/\*\*(.+?)\*\*/g, function(x) {
return '<b>' + $('<div>').text(x).html() + '</b>';
}));
嗨minitech,谢谢你的回应。事实上,我使用'html()'并使用'text()'为我做了。感谢您提供的其他信息,这也将非常有用。 Regards – alexx0186 2012-04-13 04:01:35