Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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 使我的搜索框易受XSS攻击_Javascript_Jquery_Xss - Fatal编程技术网

Javascript 使我的搜索框易受XSS攻击

Javascript 使我的搜索框易受XSS攻击,javascript,jquery,xss,Javascript,Jquery,Xss,我一直在做这个简单的搜索框来搜索表中的一个名字,我已经成功了,现在我正在研究如何使这个搜索框易受攻击(这是我做的一个课程要求) 当我输入警报(“boom!”)时将在我的页面上发出警报,但在我当前的代码中,它并没有这样做,我也不知道为什么,是因为我在使用jquery吗 如果有人能看一下我的代码,让这篇文章容易受到攻击,我将不胜感激:) 这是我的密码: $(文档).ready(函数(){ $(“#搜索”)。在('click',function()上{ var term=$('#term').val(

我一直在做这个简单的搜索框来搜索表中的一个名字,我已经成功了,现在我正在研究如何使这个搜索框易受攻击(这是我做的一个课程要求)

当我输入
警报(“boom!”)时
将在我的页面上发出警报,但在我当前的代码中,它并没有这样做,我也不知道为什么,是因为我在使用jquery吗

如果有人能看一下我的代码,让这篇文章容易受到攻击,我将不胜感激:)

这是我的密码:
$(文档).ready(函数(){
$(“#搜索”)。在('click',function()上{
var term=$('#term').val().toLowerCase();
$.each(列表、函数(索引、值){
var count=arrayInArray(术语,列表[索引]);
控制台日志(计数);
$(“tr:eq(“+(计数+1)+”)td”)。每个(函数(){
var-tb=[];
tb.push($(this.text());
console.log(tb);//要在某处打印的数据
});
});
});
});

搜寻

如果我理解正确,您会问,如果您在搜索框中输入脚本,为什么脚本没有执行,这是因为这一行:

var term = $('#term').val().toLowerCase();
此行提取搜索框的字符串内容(JQuery的就是这样做的,它的工作原理与标准DOM属性相同)。因此,对于JavaScript来说,它不是可执行代码,它只是一个包含任何标记字符的字符串

如果要以允许执行搜索框中HTML内容的方式使用搜索框的内容,如下所示:

$(文档).ready(函数(){
$(“#搜索”)。在('click',function()上{
var term=$('#term').val().toLowerCase();
//请注意,控制台将显示实际的脚本元素!
控制台日志(术语);
//但是在这里,你拿着绳子问
//要将其解析为HTML,则转义字符
//它们被解析为HTML。
$(“.input group btn”).html(术语);//
搜寻

如果我理解正确,您会问,如果您在搜索框中输入脚本,为什么脚本没有执行,这是因为这一行:

var term = $('#term').val().toLowerCase();
这一行提取搜索框的字符串内容(JQuery的就是这样做的,它的工作原理与标准DOM属性相同)。因此,对于JavaScript来说,它不是可执行代码,它只是一个包含任何标记字符的字符串

如果要以允许执行搜索框中HTML内容的方式使用搜索框的内容,如下所示:

$(文档).ready(函数(){
$(“#搜索”)。在('click',function()上{
var term=$('#term').val().toLowerCase();
//请注意,控制台将显示实际的脚本元素!
控制台日志(术语);
//但是在这里,你拿着绳子问
//要将其解析为HTML,则转义字符
//它们被解析为HTML。
$(“.input group btn”).html(术语);//
搜寻
我在您的代码中添加了这一行
$('.input group').html(term);
。现在它易受攻击

$(文档).ready(函数(){
var列表=[];
$(“td a”)。每个(函数(){
list.push($(this.text().toLowerCase().split(“”));
});
$(“#搜索”)。在('click',function()上{
var term=$('#term').val().toLowerCase();
$('.input group').html(术语);
$.each(列表、函数(索引、值){
var count=arrayInArray(术语,列表[索引]);
控制台日志(计数);
$(“tr:eq(“+(计数+1)+”)td”)。每个(函数(){
var-tb=[];
tb.push($(this.text());
console.log(tb);//要在某处打印的数据
});
});
});
功能阵列(针、草垛){
var i=0,
len=干草堆长度,
target=JSON.stringify(针);
对于(;i

搜寻
我在您的代码中添加了这一行
$('.input group').html(term);
。现在它易受攻击

$(文档).ready(函数(){
var列表=[];
$(“td a”)。每个(函数(){
list.push($(this.text().toLowerCase().split(“”));
});
$(“#搜索”)。在('click',function()上{
var term=$('#term').val().toLowerCase();
$('.input group').html(术语);
$.each(列表、函数(索引、值){
var count=arrayInArray(术语,列表[索引]);
控制台日志(计数);
$(“tr:eq(“+(计数+1)+”)td”)。每个(函数(){
var-tb=[];
tb.push($(this.text());
console.log(tb);//要在某处打印的数据
});
});
});
功能阵列(针、草垛){
var i=0,
len=干草堆长度,
target=JSON.stringify(针);
对于(;i

搜寻

在您自己的计算机上执行客户端代码不是一个非常有趣的漏洞。我可以打开浏览器的开发人员工具并键入
警报(boom)
在其JS控制台中也有相同的效果。在您自己的计算机上执行客户端代码不是一个非常有趣的漏洞。我可以打开浏览器的开发工具并键入
警报(boom)
在它的JS控制台中也有同样的效果。谢谢你对它的非常透彻的解释,是的,这就是我想要的。谢谢你对它的非常透彻的解释,是的,这就是我想要的。