美文网首页
CSRF学习笔记

CSRF学习笔记

作者: One_Hund | 来源:发表于2018-03-13 13:08 被阅读0次

    一、简介

    CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

    二、基本原理

    CSRF攻击流程图如下:


    CSRF攻击流程图

    三、防御

    1. token 校验(常用)
    前后端一起协作。前端将cookie的一个值(如user_key)进行加密后发送到后台,后天收到cookie后以相同的加密算法进行加密,若两者相等则请求成功。(因为CSRF是跨域请求,跨域无法拿到本域的cookie,所以无法伪造)

    2. 使用验证码
    因为CSRF是在用户不知情的情况下伪装成用户发送请求的。因此在用户发送请求之后设置需使用验证码验证,验证通过才请求成功,这样用户在不小心点开恶意链接遭到CSRF攻击后便会弹出验证码端口,使用户察觉。(不过使用验证码影响用户体验,因此一般不被考虑。我们经常看见的验证码是为了防御DDOS而设置的)

    3. 使用referer验证
    referer一般为当前网站的站点(如在百度的话referer就是www.baidu.com),将请求发到服务器后,服务器会检测request.header.referer是不是当前站点,若正确的请求成功。因为CSRF是跨站请求,所以referer一般是其小服务器的站点。(不过referer可以伪造,因此一般不常用

    referer

    相关文章

      网友评论

          本文标题:CSRF学习笔记

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