Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止keyup()jQuery事件的XSS?_Javascript_Jquery_Xss - Fatal编程技术网

Javascript 如何防止keyup()jQuery事件的XSS?

Javascript 如何防止keyup()jQuery事件的XSS?,javascript,jquery,xss,Javascript,Jquery,Xss,我正在制作一个带有keyup()事件的表单:用户键入的每个字符都会立即显示在同一页面上的另一个div中 它易受XSS攻击。如何使用jQuery保护它 注意:在我的表格中,我只使用拉丁字母数字字符,以及逗号、分号、冒号 我已经从OWASP搜索了“改革”工具,但是有更好的方法吗 提前谢谢。关于,只提供很少的细节:记住,您不必对所有内容都使用jQuery的HTML“解析”。不要使用.html(),而是使用DOM操作和.text()(通常也更快)。例如,这: $('#result').html('<

我正在制作一个带有keyup()事件的表单:用户键入的每个字符都会立即显示在同一页面上的另一个div中

它易受XSS攻击。如何使用jQuery保护它

注意:在我的表格中,我只使用拉丁字母数字字符,以及逗号、分号、冒号

我已经从OWASP搜索了“改革”工具,但是有更好的方法吗


提前谢谢。关于

,只提供很少的细节:记住,您不必对所有内容都使用jQuery的HTML“解析”。不要使用
.html()
,而是使用DOM操作和
.text()
(通常也更快)。例如,这:

$('#result').html('<span class="whatever">' + someInput + '</span>');
var data = 'This text: **is bold**';

$('#result').html(data.replace(/\*\*(.+?)\*\*/g, '<b>$1</b>'));
将变成这样:

$('#result').text($('<span>').addClass('whatever').text(someInput));
var data = 'This text: **is bold**';

$('#result').html(data.replace(/\*\*(.+?)\*\*/g, function(x) {
    return '<b>' + $('<div>').text(x).html() + '</b>';
}));
var data='此文本:**为粗体**';
$('\\结果').html(data.replace(/\*\*(.+?)\*\*\*/g,函数(x){
返回'+$('').text(x.html()+'';
}));

提供的细节很少:记住,您不必对所有内容都使用jQuery的HTML“解析”。不要使用
.html()
,而是使用DOM操作和
.text()
(通常也更快)。例如,这:

$('#result').html('<span class="whatever">' + someInput + '</span>');
var data = 'This text: **is bold**';

$('#result').html(data.replace(/\*\*(.+?)\*\*/g, '<b>$1</b>'));
将变成这样:

$('#result').text($('<span>').addClass('whatever').text(someInput));
var data = 'This text: **is bold**';

$('#result').html(data.replace(/\*\*(.+?)\*\*/g, function(x) {
    return '<b>' + $('<div>').text(x).html() + '</b>';
}));
var data='此文本:**为粗体**';
$('\\结果').html(data.replace(/\*\*(.+?)\*\*\*/g,函数(x){
返回'+$('').text(x.html()+'';
}));

我发现
节点验证器中包含的xss清理器非常全面。您感兴趣的代码是可用的。您需要对其进行一些清理,以便在浏览器中使用(删除module.exports并将其包装在Javascript闭包中),但它应该可以非常无缝地工作。如果您愿意,也可以直接将其制作成JQuery插件。

我发现
节点验证器中包含的xss清理器非常全面。您感兴趣的代码是可用的。您需要对其进行一些清理,以便在浏览器中使用(删除module.exports并将其包装在Javascript闭包中),但它应该可以非常无缝地工作。如果您愿意,也可以直接将其制作成JQuery插件。

Hi-minitech,感谢您的回复。事实上,我是用
html()
text()
为我做的。谢谢你提供的额外信息,这也会很有用。RegardsHi minitech,感谢您的回复。事实上,我是用
html()
text()
为我做的。谢谢你提供的额外信息,这也会很有用。RegardsHi,谢谢你的回复。我正在更详细地研究这个问题。谢谢你的链接。RegardsHi,谢谢你的回复。我正在更详细地研究这个问题。谢谢你的链接。当做