web 安全

  xss (cross site script) 跨站点脚本攻击

   向web页面插入恶意的可执行网页脚本代码,当用户浏览时,恶意脚本执行

达到盗取用户信息或其他侵犯用户安全隐私的目的。

  1. 非持型xss,反射型xss

  • 攻击者构造特殊的url,包含恶意代码
  • 用户打开又恶意代码的url,网站服务器将恶意代码从url中取出,拼在html中
    返回给浏览器
  • 用户浏览器收到响应后解析执行,混在其中的恶意代码也被执行。
  • 恶意代码窃取用户信息并发送到攻击者的网站或者冒充用户行为,调用目标网站
    的接口进行指定操作

    特点:1. 即时性,不经过服务器存储,直接通过http的get 或者 post 请求就能完成一次

    攻击,拿到用户隐私数据;2. 攻击者需要诱骗用户点击;3. 反馈率低,比较难发现

 防止:尽量不要直接向html中嵌入不确定性的字符串

     2. 持久型xss,存储型

  • 一般存在form表单等输入型的操作,如发帖,留言,提交文本信息等,恶意用户,将携带
    恶意代码的输入提交到网站后台,数据库会持久保存。当前端拉取从后端返回的数据时,
    数据中携带的恶意代码在用户浏览器中执行。
    • 例子:<img  src ='javascript:alter('xss')'/>
      <img src = '#' onerror = 'alter('xss')'/> 当src错误时就会执行onerror事件

    条件:前后端对用户输入的数据没做任何转义操作,前端拿到后端的数据,直接在页面上执行。

  xss原因:把不可信的数据作为html插入到网页上

  csrf(跨站请求伪造)

  攻击者盗用用户的认证信息,模拟用户向后端发送各种请求。

  •  用户登录A网站,并保留了登录凭证(cookie)
  • 攻击者诱导用户访问B网站
  • B网站向A网站的服务端发送了一个恶意请求,这时浏览器会默认带A网站的cookie
  • A网站服务端接受到请求之后,由于cookie还在有效期内,所有会对用户的请求作出响应。
  • 攻击完成,攻击者在用户不知情的情况下,冒充用户完成了攻击

    预防:使用token 做通行证可以防止csrf;新增cookie的samesite属性,可以限制跨站点发送

    cookie;服务接收到请求,可以对用户请求的origin 做判断。

    

原文地址:https://www.cnblogs.com/wust-hy/p/13538388.html