我目前正在了解有关CSRF的更多信息,我有一个关于cookie的基本问题。来自Jeff Atwood's article on CSRF:
“当POST请求发送到 网站,请求应该只是 如果表格价值和,则视为有效 cookie值是相同的。当一个 攻击者代表a提交表格 用户,他只能修改值 表格。攻击者无法阅读任何内容 从服务器发送的数据或修改 cookie值,根据同源而定 政策。这意味着,虽然 攻击者可以发送他想要的任何值 随着形式,他将无法 修改或读取存储在中的值 饼干“。
如果Cookie为a piece of text stored on a users computer,他们怎么能不修改/读取cookie的值?
如果他们知道cookie的价值并且可以看到隐藏在表单中的伪随机值,那么他们是不是只需要执行攻击呢?
谢谢,
答案 0 :(得分:4)
同源政策意味着攻击网站无法从其他域读取Cookie。见http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_cookies
我们不是在谈论在用户的计算机上拥有rootkit或类似内容的攻击者,CSRF保护的是恶意服务器,用户通过POST请求向恶意服务器的域提交表单想要攻击。由于恶意服务器无法从目标域读取cookie,因此无法正确填写CSRF字段以获取他们正在进行的POST请求。
答案 1 :(得分:2)
这指的是同步器令牌模式。通常意味着表单包含一个隐藏字段,其值对于该用户的会话是唯一的。相同的值存储在用户计算机的cookie中。提交表单后,将检查两个值是否匹配。
这种方法的优点是,如果恶意网站试图构建对合法网站的发布请求,则不会知道该隐藏的表单值。获得这个是一个完全复杂的过程。
攻击网站无法读取或操作Cookie值,因为它是从其他域发出的。更多相关内容(包括一个有效的例子):OWASP Top 10 for .NET developers part 5: Cross-Site Request Forgery (CSRF)