首页 网络安全 网站防护 查看内容

网络安全之CSRF(跨站点请求伪造)

2019-8-15 14:24 |来自: 互联网 1268 0

摘要: 1.什么是CSRF?跨站点请求伪造(也称为CSRF)是一个Web安全漏洞,允许攻击者诱使用户执行他们不打算执行的操作。比如以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但 是攻击者却可能完成了所他期望的操作(以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、 ...
关键词: 用户 令牌 网站 CSRF 验证 攻击者 Cookie 恶意 攻击 浏览器

1.什么是CSRF?

跨站点请求伪造(也称为CSRF)是一个Web安全漏洞,允许攻击者诱使用户执行他们不打算执行的操作。比如以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但 是攻击者却可能完成了所他期望的操作(以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等)。

2.CSRF原理

  • 用户A打开浏览器,访问受信任网站B,网站B要求用户A输入用户名和密码请求登录网站B
  • 在用户信息通过验证后,网站B产生Cookie信息并返回给浏览器,此时用户登录网站B成功,可以正常发送请求到网站B;
  • 在用户A退出网站B之前,在同一浏览器中,用户A又打开了一个页面访问网站C(带有CSRF恶意代码的网站);
  • 4. 网站C接收到用户A请求后,执行了CSRF恶意代码,发出一个请求要求访问第三方站点B;
  • 5. 浏览器在接收到这些CSRF恶意代码后,根据网站C的请求,在用户不知情的情况下携带着他的Cookie信息,向网站B发出请求。但是网站B并不知道该请求不是由用户A发起的,而是由网站C发起的,所以网站B会根据用户A的Cookie信息以A的权限处理该请求,导致来自网站C的CSRF恶意代码被执行。
  • 注:Cookie指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

3.CSRF攻击成功的三个关键条件

  • 相关行动。应用程序中存在攻击者有理由诱导的操作。这可能是特权操作(例如修改其他用户的权限)或对用户特定数据的任何操作(例如更改用户自己的密码)。
  • 基于Cookie的会话处理。执行操作涉及发出一个或多个HTTP请求,并且应用程序仅依赖会话cookie来标识发出请求的用户。没有其他机制可用于跟踪会话或验证用户请求。
  • 没有不可预测的请求参数。执行操作的请求不包含攻击者无法确定或猜测其值的任何参数。例如,当导致用户更改其密码时,如果攻击者需要知道现有密码的值,则该功能不容易受到攻击。

4.防止CSRF攻击

抵御CSRF攻击的最有效方法是在相关请求中包含CSRF令牌。CSRF令牌应该具有以下特点:

  • 高熵不可预测。
  • 绑定到用户的会话。
  • 在相关行动执行之前,在每种情况下都经过严格的验证。

其中主要的防止CSRF攻击的方式有:

  • 验证 HTTP Referer 字段
  • 在请求地址中添加 token 并验证
  • 在 HTTP 头中自定义属性并验证

5.常见的CSRF漏洞

  • CSRF令牌的验证取决于请求方法
  • CSRF令牌的验证取决于令牌存在
  • CSRF令牌与用户会话无关
  • CSRF令牌绑定到非会话cookie
  • CSRF令牌只是在cookie中复制
  • Referer的验证取决于标题存在
本文出处: https://www.toutiao.com/a6725040508818686467/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部