前端面试准备--8.安全类

作者: 飞菲fly | 来源:发表于2017-09-27 19:33 被阅读139次

    CSRF/XSS
    一、CSRF

    1.基本概念和缩写:

    • 跨站请求伪造;Cross-Site Request Forgery 缩写CSRF

    2.攻击原理

    CSRF攻击原理.png
        1.用户是网站A的注册用户,通过身份验证登录网站A,登录之后网站A核查身份是不是正确的,
          如果正确就下发cookie,这个cookie保存到用户浏览器当中,这就是完成了一次身份认证的过程。
        2.用户又访问了一个网站B,网站B会给用户下发用户页面的时候,会存在引诱的一个点击,这个点击
          往往是一个链接,就是指向网站A的一个API接口,接口是GET类型,比如:www.xxx.com/hack,
          指向存在漏洞的接口,当用户经不住引诱点击了这个东西,这个点击就访问了A网站,访问A网站
          这个链接的时候,浏览器会自动上传cookie,上传之后网站A觉得是A这个Cookie拿过来之后对身
          份重新认证,发现是合法用户,就执行了这个接口的动作。
    
    • 重点:用户在注册网站登录过,没有登录会提示登录;

    • CSRF能够造成攻击的原理:(实现CSRF攻击不可缺失的连个因素)

      • 网站中某一个接口存在漏洞
      • 这个用户在注册网站确实登录过

    3.防御措施

     1.加Token验证
        访问接口的时候,浏览器自动上传cookie,但是没有手动上传一个Token,这个Token是你注册成功
        以后,或者没有注册,只要你访问了这个网站,服务器会自动的向你本地存储一个Token,在你访问
        各种接口的时候,如果没带Token,,就不能帮你通过验证,如果只是点击了引诱链接,这个链接只会
        自动携带cookie,不会自动携带Token,所以就避免了那个攻击。
    
    2.Referer验证
       Referer指的是页面来源,如果服务器判断页面来的是不是我的这个站点下面的页面,如果是就执行
       你这个动作,如果不是就拦截。
    
    3.隐藏令牌
      和Token有点像,做法:隐藏在http的head头中,不会放在链接上,这样就做的比较隐蔽。本质上没
      有太大区别。只是使用方式有一点差别。
    

    二、XSS

    1.基本概念和缩写:

    • 跨域脚本攻击;Cross-Site Scripting 缩写XSS

    2.攻击原理(核心宗旨:让你插入的js不可执行)

    http://www.immoc.com/learn/812

    3.防御措施
    http://www.immoc.com/learn/812

    4.和CSRF区别:

    • XSS不需要做任何的登录认证,核心原理向你页面注入脚本;
      eg:比如评论区:如果评论区注入XSS最好的方式可以在你提交区里面写上script标签,img标签上加事件,总之,它的方法利用你合法的渠道向你页面注入js,这是XSS攻击原理。
    • XSS是向你页面注入js运行,然后js函数体里面做它想做的事情。
    • CSRF利用你本身的漏洞,去帮你自动执行那些接口。
      ------这两种攻击方式是不一样的,CSRF要依赖用户要登录网站。

    总结:
    1.关于名称要把中文意思说出来
    2.原理说清楚
    3.防御措施
    要言简意赅,说清楚那个点;

    相关文章

      网友评论

        本文标题:前端面试准备--8.安全类

        本文链接:https://www.haomeiwen.com/subject/ovxpextx.html