2024年11月23日发(作者:)
jQuery用法中可能被XSS攻击的一些危急
环节提示_
XSS指的是跨站脚本攻击,比如人们常说的向$传入
字符串或者字符串转换可执行函数等一些平安方面值得留
意的详情,下面就为大家整理了jQuery用法中可能被XSS攻
击的一些__环节提示
$
我们常常用法向 $ 内传入一个字符串的方式来选择或生
成 DOM 元素,但假如这个字符串是来自用户输入的话,那
么这种方式就是有风险的。
先看一个 DEMO:l,js,output
$("img src='' onerror='alert();'");
当用户输入的字符串是像这样的时,虽然这个 img 元素
不会马上被插入到网页的 DOM 中,但这个 DOM 元素已经被
创建了,并且暂存在内存里。而对于 img 元素,只要设置
了它的 src 属性,扫瞄器就会马上恳求 src 属性所指向的
资源。我们也可以利用这个特性做图片的预加载。在上面的
示例代码中,创建元素的同时,也设置了它的属性,包括 src
属性和 onerror 大事监听器,所以扫瞄器会马上恳求图片
资源,明显恳求不到,随机触发 onerror 的回调函数,也
就执行了 JavaScript 代码。
推举阅读 $ 的官方文档:l()
.insertAfter()
.insertBefore()
.prepend()
.prependTo()
.replaceAll()
.replaceWith()
.unwrap()
.wrap()
.wrapAll()
.wrapInner()
.prepend()
以上这些方法不仅创建 DOM 元素,并且会马上插入到页
面的 DOM 树中。假如用法 script 标签插入了内联 JS 会
立刻执行。
担心全的输入来源
*
me *
*
*
er *
document 的大多数属性都可以通过全局的 window 对象
访问到。加 * 的属性返回的时编码 (urlencode) 后的字
符串,需要解码才可能造成威逼。
担心全的操作
把可以被用户编辑的字符串,用在以下场景中,都是有隐
患的。总体来说,任何把字符串作为可执行的代码的操作,
都是担心全的。
1.通过字符串创建函数
(1)eval
(2)new Function
(3)setTimeout/setInterval
2.跳转页面
e/
修改 script 标签的 src 属性
修改大事监听器
总结
假如发生在用 jQuery 时被 DOM-XSS 攻击的状况,大多
是由于忽视了两个东西:
1. 在给$传参数时,对参数来源的把控。
2. 用户的输入途径不只有表单,还有地址栏,还可以通
过开发者工具挺直修改 DOM ,或者挺直在掌握台执行 JS
代码。
...
本文发布于:2024-11-23 15:09:39,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1732345779519920.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |