Codeigniter CSRF - 它是如何工作的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeigniter CSRF - 它是如何工作的相关的知识,希望对你有一定的参考价值。
最近我发现了CSRF攻击,并很高兴地发现CSRF保护被添加到Codeigniter v 2.0.0中。
我启用了该功能,并看到在表单中添加了带有令牌的隐藏输入,我认为它也将令牌存储在会话中。在POST请求中,CI会自动比较令牌还是我必须手动执行此操作?
仅当使用form_open()
函数时,CSRF令牌才会作为隐藏输入添加到表单中。
具有CSRF令牌值的cookie由Security类创建,并在必要时为每个请求重新生成。
如果存在$_POST
数据,则Cookie将由Input类自动验证。如果发布的令牌与cookie的值不匹配,CI将显示错误并无法处理$_POST
数据。
所以基本上,它都是自动的 - 你所要做的就是在你的$config['csrf_protection']
中启用它并使用form_open()
函数为你的表单。
我发现的一篇好文章解释得非常好:https://beheist.com/blog/csrf-protection-in-codeigniter-2-0-a-closer-look.html
请参阅此链接 - Used CSRF Tokens using form helper or Manually
本文解释了如何使用CSRF令牌
- 使用表单助手
form_open()
函数打开表单 - 在ajax形式
- ajax / jquery序列化表单
本文还介绍了如何“为某些URL(用作Web服务URL)禁用CSRF”
启用csrf保护时,安全性类会自动检查此标记(它将POST标记与COOKIE标记进行比较)
以上是关于Codeigniter CSRF - 它是如何工作的的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter:Paypal IPN 和 csrf_protection