Codeigniter CSRF - 它是如何工作的

Cyb*_*kie 19 php security codeigniter token

最近我发现了CSRF攻击,并很高兴地发现CSRF保护被添加到Codeigniter v 2.0.0中.

我启用了该功能,并看到在表单中添加了带有令牌的隐藏输入,我认为它也将令牌存储在会话中.在POST请求中,CI会自动比较令牌还是我必须手动执行此操作?

Wes*_*rch 37

仅当使用该form_open()函数时,CSRF令牌才会作为隐藏输入添加到表单中.

具有CSRF令牌值的cookie由Security类创建,并在必要时为每个请求重新生成.

如果$_POST存在数据,则由Input类自动验证cookie.如果发布的令牌与cookie的值不匹配,则CI将显示错误并无法处理$_POST数据.

所以基本上,它都是自动的 - 你所要做的就是在你的身上启用它$config['csrf_protection']并使用form_open()你的表单功能.

我发现的一篇好文章解释得非常好:https://beheist.com/blog/csrf-protection-in-codeigniter-2-0-a-closer-look.html

  • 谢谢你的澄清!我很高兴我选择CI作为我的框架:) (2认同)