面试题杂记01-crsf和xss是什么

Posted 搬砖糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题杂记01-crsf和xss是什么相关的知识,希望对你有一定的参考价值。

一. crsf
跨站请求伪造攻击,即攻击者盗用你的身份,以你的身份去发送恶意请求修改你的资料信息

  1. crsf攻击过程

    - 用户使用账号密码正常登录A网站,A网站自然会生成自己的cookie
    - 用户未退出A网站的情况下,在同一个浏览器中打开新Tab登录B网站
    - 网站B在打开后发送恶意请求访问第三方A网站
    - 浏览器在不知情情况下,根据B网站请求,携带A网站的cookie向A网站发送请求,导致A网站做出错误决定响应请求,攻击成功
    
  2. crsf防御

     - 验证 HTTP Referer 字段

    根据 HTTP 协议,在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。黑客的请求Referer地址指向他自己的网站,这样我们验证是不是A网站发出的请求就可以防御crsf攻击
    缺点:Referer字段依赖第三方浏览器,不能保证浏览器自身是否有漏洞导致字段被更改

     - 在请求地址中添加 token 并验证

    每次请求都添加一个token在请求中,放在url或者POST请求中以参数形式传递,后台验证token,如果不对就拒绝
    缺点:token也可以被伪造或者被获取,也会透过Referer泄露

  3. 在 HTTP 头中自定义属性并验证

     - 在Http请求头中添加自定义属性,上面token也可以放入请求头中
    

二. XSS

  1. 跨站脚本攻击,攻击者在网站中加入一些恶意script代码,用户访问时会执行对于代码
  2. 反射型XSS,即非持久攻击,在服务器中插入一些代码,访问时带给用户,并在网站中执行
  3. 存储型XSS,将恶意代码上传或存储到服务器中,下次只要受害者浏览包含此恶意代码的页面就会执行恶意代码
  4. SQL注入,在SQL语句中添加相应的SQL语句修改数据库数据
  5. 防御:

    前端,对传递的数据都要进行转义。
    后端也要过滤相应的数据,防SQL注入是后端常用操作,不太了解就不说了
    

以上是关于面试题杂记01-crsf和xss是什么的主要内容,如果未能解决你的问题,请参考以下文章

面试题杂记02-OPTIONS请求

面试题锦 | 说说XSS 和 CSRF 攻击

经典面试题:xss攻击和防御

PHP中高级面试题 – 第一天

中通快递股份有限公司.net高级面试题

前端面试题之浏览器原理篇