CSRF

Posted wan-xiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSRF相关的知识,希望对你有一定的参考价值。

CSRF

概述

cross-site request forgery

CSRF攻击场景中攻击者伪造一个请求,然后切片目标用户进行点击,用户一旦点击,攻击就完成了。

判断一个网站是否存在CSRF漏洞,就是判断其对关键信息的操作(增删改)是否容易伪造。

利用的场景被攻击者必须要本身处于登录的状态,因为攻击者只是容易伪造请求但并不能知道密码cookie一些东西。

如何确认

  1. 对目标网站增删改的地方进行标记,并观察其逻辑,判断请求是否可以伪造,如对于敏感信息的修改并没有使用安全的token验证,导致请求容易被伪造。
  2. 确认凭证的有效期(会提高CSRF被利用的概率),如虽然推出或者关闭了浏览器,但cookie仍然有效,或者session并没有及时国企,导致CSRF攻击成功率变高-攻击者不必处于登陆状态。

利用

GET型的只要被攻击者点击,并且处于登录状态就可以。

POST型和XSS post类型用法一样需要第三方站点做好表单。

Token

技术图片

每次关键动作请求后台都会生成Token,在session中保存,每次提交都会带上token在后端验证会话是连贯和实时的,保证请求不是伪造的。

验证token,每次刷新页面重置token

技术图片

防护

郑家token验证(常用的做法):

  1. 对关键操作增加token参数,token必须随机,每次都不一样。

安全的会话管理(避免会话被利用)

  1. 会话及时销毁,登录超时操作。

还可以限制一下referer

以上是关于CSRF的主要内容,如果未能解决你的问题,请参考以下文章

CSRF的攻与防

CSRF的攻与防

csrf攻击

Django学习手册 - csrf

CSRF攻击原理

CSRF攻防之道