jQuery返回到创建DOM对象,如果搜索是空的
jQuery Fallback to Creating DOM Object If Search Is Empty?
我刚刚发现了一个导致XSS的奇怪案例,但我真的不明白为什么。所讨论的代码正在搜索具有如下匹配名称的标记:
var varName = getCookie('cookiename');
var link = $('.someclass a[name=' + varName + ']');
如果该cookie碰巧包含XSS,则执行该jQuery代码将导致XSS被执行。我理解它本身,像$('')将被添加到DOM并执行,根据我在文档中阅读的内容。我不明白为什么上面的代码,用相同的img标签作为变量值,有相同的结果。它不应该只导致一个空变量吗?
在旧版本的jQuery中,下面的jQuery选择器会创建一个div:
$('.someclass a[name=' + '<div>Hello World!</div>' + ']')
然而,在最近的jQuery版本中,jQuery将不会创建一个dom片段,除非html字符串以<
开头,这完全避免了这个问题。
因此,要么在将输入放入选择器之前验证它,要么更新jQuery。
http://jsfiddle.net/g33n57vs/相关文章:
- 检查搜索结果是否存在多次如果是,则在Javascript中只显示一个结果
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- Angular ng sortable-如果我在一个栏中添加了一个搜索框,则拖放在两列之间无法正常工作
- jQuery脚本,它搜索现有的查询参数并且不添加“"如果存在
- jQuery在多个表中搜索文本,如果找到文本,则单击按钮
- Jquery使用特殊类搜索所有标签,如果其中一个标签具有值,则只显示一个警报
- jQuery 获取搜索选择器,如果元素不存在
- 在表的所有 tds 中搜索确切的字符串“已停用”;如果为 true,则隐藏该表的整行
- 如果当前网址不包含位置搜索,请重定向到主页
- 如果搜索框为空,则通过sumbitform按钮将iMacro连接到结果
- 如果未找到搜索方法,则应返回什么
- 使用 JavaScript 搜索字符串,如果结果为 true,则重定向页面
- 如果搜索栏为空,则重绘表
- 如果名称包含数字,Twitter 搜索 API 不会返回推文
- 如果搜索框位于_SiteLayout页(在页眉 DIV 中),如何将搜索结果返回给用户
- 如果搜索字段为空,则不要搜索(Wordpress)
- 在数组中搜索数字.如果不存在,则在 Javascript 中返回较低的值
- Javascript在正文文本中搜索关键字,如果找到,则重定向到特定的URL
- Bootstrap下拉菜单–如果搜索栏集中,请保持打开状态
- 如果查询搜索包含元素,如何返回布尔值