跨站点请求伪造

时间:2014-05-05 15:24:08

标签: php csrf csrf-protection

我阅读了this tutorial,它提供了一个很好的解释,以防止CSRF,但它仍然从我的脑中消失。根据方法一中的本教程,他们在每个请求中包含一个随机令牌。因此,他们在表格中包含了类似的内容:

<input type="hidden" name="<?php echo $token_id; ?>" value="<?php echo $token_value; ?>"

在提交表单后,他们正在检查令牌是否匹配。

如何帮助预防CSRF?
当攻击者向用户发送恶意链接时,我很困惑,当用户点击它时,根据我的说法,令牌每次都会匹配。

1 个答案:

答案 0 :(得分:6)

页面中的标记必须与存储在cookie(或会话)中的标记相匹配。

设置cookie的网站知道该标记值是什么,并可以在表单中指定它。

第三方攻击者的网站无法知道该标记值是什么,因此无法指定它。

您是否测试Cookie中的令牌是否与表单数据中的令牌匹配,如果他们不将您的请求拒绝为CSRF。