CSRF是否安全?

时间:2016-01-04 13:02:55

标签: csrf csrf-protection

很多人谈论实施CSRF以阻止网页上的跨站点攻击。但我认为破坏CSRF并向服务器发出请求非常容易。

那它是如何运作的?

  1. 您从页面开始,渲染表单并使用CSRF令牌保留隐藏字段。
  2. 提交表单时,其他页面将使用CSRF令牌以验证请求。
  3. 在验证请求时,服务器将检查带有密码的CSRF令牌以查看令牌是否有效。
  4. 现在秘密本身存储在会话或cookie中。
  5. 这意味着如果我去网站,从网页复制CSRF令牌,从浏览器网络选项卡复制会话值。在此之后我可以构造一个CURL请求,设置这些值并尽可能多地发出请求。

    那么CSRF的需求是什么?

1 个答案:

答案 0 :(得分:6)

您定义的方案不是CSRF。

您的方案

爱丽丝去了鲍勃的网站。 Alice从Bob的网站上获取了一个cookie。 Alice使用该数据发出她为Bob的网站设计的请求。

这很好。这里发生的一切都在爱丽丝和鲍勃之间。

如果Bob无法信任Alice发送好的数据,那么这完全是另一个问题。

CSRF场景

爱丽丝去了鲍勃的网站。 Alice从Bob的网站上获取了一个cookie。爱丽丝去了Mallery的网站。 Mallery的网站触发向Bob的网站提交表单。 Bob接受这些数据,因为它来自Alice的浏览器和Alice的cookie。

即。 Mallery的网站正在伪造Alice对Bob网站的请求。

反CSRF令牌旨在阻止Mallery通过Alice的浏览器发出请求(因为Mallery无法将令牌放入表单数据中,因此无法匹配cookie中的令牌。)