<分区>
刚刚读到 CodeIgniter 2.x 具有内置的 CSRF 保护。现在阅读文档后,我没有发现任何与 CSRF 相关的内容,只是将其设置为 TRUE
的选项。在config.php
文件就是这样。但是,在我的系统中我不使用这个 form_helper
它自动合并了 CodeIgniter 的 CSRF 保护,而不是我有原生的 <form>
的 HTML。
我担心的是我是否需要做任何事情来实现 CodeIgniter 的 CSRF,或者只是将选项设置为 TRUE
够了吗?
标签 php forms codeigniter csrf
<分区>
刚刚读到 CodeIgniter 2.x 具有内置的 CSRF 保护。现在阅读文档后,我没有发现任何与 CSRF 相关的内容,只是将其设置为 TRUE
的选项。在config.php
文件就是这样。但是,在我的系统中我不使用这个 form_helper
它自动合并了 CodeIgniter 的 CSRF 保护,而不是我有原生的 <form>
的 HTML。
我担心的是我是否需要做任何事情来实现 CodeIgniter 的 CSRF,或者只是将选项设置为 TRUE
够了吗?
最佳答案
要在 Codeigniter 中启用 CRSF,您需要做的就是:
在配置文件中将选项设置为“TRUE”
您的所有表单必须使用form_open() helper function .这将自动生成并在您的表单中包含一个“隐藏的”CSRF token 。然后,作为安全功能的一部分,Codeigniter 将在每次提交表单时自动检查此 token 。如果检测到 CSRF 错误,它会自动抛出 401 错误。
您不需要做任何其他事情。
编辑:我刚刚重新读到您没有使用 form_open()。自己手动将 CSRF token 插入表单是可能的——但这比所需的工作量要多。只需将您的所有表单转换为使用 form_open - 它将无缝运行。
(是的 - 这是 CI 中为数不多的文档不足的功能之一 - 所以我理解你为什么找不到答案 - 我也花了一段时间)
关于php - 在 CodeIgniter 中启用 CSRF 为 TRUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12761737/
相关文章:
python - Django forms.FileField 验证
我的选择表单中的 Javascript 不适用于文本区域字段
php - Apache 的 mod_php 还是 FastCGI?哪个对 Wordpress 有好处?
php - 使用带有查询字符串的 facebook like 按钮 - like 按钮不起作用
php - 如何在两个 laravel 项目之间使用 API 手动登录?
php - 优化使用 IN 和 MAX(date) 的 MySQL 查询
php - Codeigniter + ajax(jQuery) session 问题