Codeigniter CSRF - 它是如何工作的
2022-08-30 17:07:04
最近,我发现了CSRF攻击,并很高兴地发现CSRF保护已添加到Codeigniter v 2.0.0中。
我启用了该功能,并看到在表单中添加了带有令牌的隐藏输入,并且我假设它也将令牌存储在会话中。在 POST 请求中,CI 是否会自动比较令牌,还是我必须手动执行此操作?
最近,我发现了CSRF攻击,并很高兴地发现CSRF保护已添加到Codeigniter v 2.0.0中。
我启用了该功能,并看到在表单中添加了带有令牌的隐藏输入,并且我假设它也将令牌存储在会话中。在 POST 请求中,CI 是否会自动比较令牌,还是我必须手动执行此操作?
仅当使用函数时,CSRF 令牌才会作为隐藏输入添加到表单中。form_open()
具有 CSRF 令牌值的 Cookie 由 Security 类创建,并在必要时为每个请求重新生成。
如果数据存在,则输入类会自动验证 Cookie。如果发布的令牌与 Cookie 的值不匹配,CI 将显示错误并无法处理数据。$_POST
$_POST
所以基本上,它都是自动的 - 你所要做的就是在你的表单中启用它并使用该功能。$config['csrf_protection']
form_open()
我发现的一篇好文章很好地解释了它:https://beheist.com/blog/csrf-protection-in-codeigniter-2-0-a-closer-look.html
请参阅此链接 -- 使用表单助手或手动使用 CSRF 令牌
本文介绍了如何使用 CSRF 令牌
form_open()
本文还解释了如何“禁用CSRF的cetain URL(用作Web服务URL)”"