请注意,CodeIgniter 2.x具有内置的CSRF保护功能。现在,在阅读文档后,我没有找到任何与CSRF相关的内容,只需选择将其设置为TRUE
文件中的config.php
即可。但是,在我的系统中,我不会使用此form_helper
自动合并CodeIgniter的CSRF保护,而是使用HTML的原生<form>
。
我担心的是我是否需要做任何事情来实现CodeIgniter的CSRF,或者只是将选项设置为TRUE
就足够了?
答案 0 :(得分:2)
要在Codeigniter中启用CRSF,您只需要:
在配置文件中将选项设置为“TRUE”
所有表单必须使用form_open() helper function。这将自动生成并在表单中包含“隐藏的”CSRF令牌。然后,Codeigniter将在每个表单提交时自动检查此令牌,作为安全功能的一部分。如果它检测到CSRF错误,它将自动抛出401错误。
你不需要做任何其他事情。
编辑:我刚刚重新读到你没有使用form_open()。也许可以自己手动将CSRF令牌插入到表单中 - 但这比需要的工作更多。只需将所有表单转换为使用form_open - 它将无效地工作。
(是的 - 这是CI中少数记录不足的功能之一 - 所以我理解为什么你找不到答案 - 它花了我一段时间)