Web安全漏洞——XSS攻击

1.原理

Xss(跨站脚本攻击),英文名“Cross Site Sripting”,在一开始,这种攻击的案列是跨域(同源策略)的,所以叫做“跨站脚本”,但是今天,由于js的强大功能以及网站前端的复杂性,是否跨域已经不再重要。Xss也是注入攻击,即本质是把用户输入的数据当成代码执行当web应用对用户输入过滤不严格,攻击者写入恶意的脚本代码(html、js)到网页中时,如果用户访问了带有恶意代码的页面,恶意脚本就会被浏览器解释执行导致用户被攻击。
常见的危害有:cookie窃取,session劫持,钓鱼攻击,蠕虫,ddos等。

2.分类

xss根据其特性和利用方式可以分为三大类:反射型,存储型,DOM(文档对象模型)型

  1. 反射型
    反射型xss只是简单的把用户输入的数据“反射”给浏览器。一般出现在url参数中及网站搜索栏中,需要点击包含恶意代码的链接才能触发,并且只能触发一次,所以也叫作“非持久型xss
  2. 存储型
    存储型xss会把用户输入的数据“存储”在服务器端,这种xss就有很强的稳定性。比如一个论坛评论区由于对用户输入的过滤不严格,导致攻击者在写入一段窃取cookie的恶意js代码后,这段恶意代码会写入数据库,当其他用户访问这个带有恶意代码的页面时,网站从数据库读取恶意代码显示到网页中被浏览器执行,导致用户cookie被窃取。也被称为“持久性xss”。
  3. DOM型
    这种类型的xss并非按照“数据是否保存在服务器端”来划分,DOM Based Xss从效果来说也是反射型xss。前端脚本通过dom动态修改页面,由于不与服务端进行交互,而且代码是可见的,从前端获取dom中的数据在本地执行。通过修改页面的DOM节点形成的xss,称为DOM Based Xss
    常见的可以操纵DOM的对象:URL、location、referer
3.防御
  1. 设置HttpOnly属性。浏览器将阻止页面访问带有httponly属性的cookie。
  2. 输入检查
  3. 输出检查。一般来说,除了富文本的的输出外,当变量输出到html页面时,可以使用编码或转义的方式来防御xss攻击。
  4. 安全的编码函数
    编码防御具体:https://juejin.im/post/5bf214e151882579cf011c2a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值