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