XSS-跨站脚本攻击

XSS

Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。
为了和 CSS 区分,这里把攻击的第一个字母改成了 X,于是叫做 XSS。
XSS 的本质是:恶意代码未经过滤,与网站正常的代码混在一起;浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行。

反射型XSS攻击

当浏览器请求 http://xxx/search?keyword="> 时,服务端会解析出请求参数 keyword,得到 ">,拼接到 HTML 中返回给浏览器。形成了如下的 HTML:

您搜索的关键词是:">

这样浏览器就会执行我们注入的恶意代码,我们诱导他人访问我们构造的链接,就会把他人访问页面的部分信息发送给我的服务器

存储型 XSS 攻击

比如一个网站的文章可以发表评论。
你登录后获取了cookie然后评论。
然后输入评论内容: 2222
恶意脚本未经转换,存储到了后台。任何用户访问此页面,都会执行恶意脚本。
导致每个用户在看这篇文章的时候就都弹出XSS弹框

DOM 型XSS攻击

客户端的脚本程序可以动态地检查和修改页面内容,而不依赖于服务器端的数据。可能引起dom型xss的:使用innerHTML, documen.write属性...
DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。



上面如果某个网站有这样的代码我们可以直接在输入框输入onclick=alert(/xss/)
提交之后,页面代码就变成了:
testLink

如何防御XSS攻击

https://juejin.im/post/5bac9e21f265da0afe62ec1b

你可能感兴趣的:(javascript,html,chrome,xss,web安全)