CSRF学习笔记

概念:Cross-site request forgery跨站点请求伪造;也被称为 One Click Attack或者 Session Riding,是一种广泛存在于网站中的安全漏洞缩写为CSRF/XSRF;跟XSS攻击一样,存在巨大的危害性。攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,虚拟货币转账等。

   攻击原理理解:
    1. 小明登录访问受信任网站A,输入用户名和密码请求登录网站A;

    2.在小明信息通过验证后,网站A产生cookie信息并返回给浏览器,此时小明登录网站成功,可以正常发送请求到网站A

    3. 小明未退出浏览器之前,在同一浏览器中,又打开一个网页访问网站B;

    4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;

    5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据小明的Cookie信息以小明的权限处理该请求,导致来自网站B的恶意代码被执行。

   防御原理理解:
    1.对“用户凭证”进行校验处理,以此来判定用户请求的合法性(即生活中常用的人脸识别验证之类的),判断是不是跨站攻击的行为
  
    2.“用户凭证”一般在Cookie中储存,因此也需要对数据进行生命周期时间管理,就是数据过期管理

    3.基于Moonscript语言开发的WEB框架——Lapis框架,其中有一段师针对CSRF的防护代码,是围绕时间戳和签名验证的CSRF防护设计

    跨站攻击的本质是, 攻击者拿着你的“身份凭证”,冒充你进行的相关攻击行为。

    为了防止CSRF的发生,创建Token处理机制, Token数据结构与时间、加密签名直接相关,给“身份凭证”加上时间生存周期管理和签名校验管理,如果的凭证被人拿到了, 要先判断Token中的“签名”与时间戳是否都有效,再进行正常的业务处理, 这样通过对非法数据的校验过滤,来降低CSRF攻击的成功率
 

你可能感兴趣的:(安全,网络,web安全,csrf,学习,笔记)