在CodeIgniter中启用CSRF为TRUE

时间:2012-10-06 16:47:41

标签: php forms codeigniter csrf

请注意,CodeIgniter 2.x具有内置的CSRF保护功能。现在,在阅读文档后,我没有找到任何与CSRF相关的内容,只需选择将其设置为TRUE文件中的config.php即可。但是,在我的系统中,我不会使用此form_helper自动合并CodeIgniter的CSRF保护,而是使用HTML的原生<form>

我担心的是我是否需要做任何事情来实现CodeIgniter的CSRF,或者只是将选项设置为TRUE就足够了?

1 个答案:

答案 0 :(得分:2)

要在Codeigniter中启用CRSF,您只需要:

  1. 在配置文件中将选项设置为“TRUE”

  2. 所有表单必须使用form_open() helper function。这将自动生成并在表单中包含“隐藏的”CSRF令牌。然后,Codeigniter将在每个表单提交时自动检查此令牌,作为安全功能的一部分。如果它检测到CSRF错误,它将自动抛出401错误。

  3. 你不需要做任何其他事情。

    编辑:我刚刚重新读到你没有使用form_open()。也许可以自己手动将CSRF令牌插入到表单中 - 但这比需要的工作更多。只需将所有表单转换为使用form_open - 它将无效地工作。

    (是的 - 这是CI中少数记录不足的功能之一 - 所以我理解为什么你找不到答案 - 它花了我一段时间)