Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在CodeIgniter中实现CSRF_Php_Forms_Codeigniter_Csrf - Fatal编程技术网

Php 在CodeIgniter中实现CSRF

Php 在CodeIgniter中实现CSRF,php,forms,codeigniter,csrf,Php,Forms,Codeigniter,Csrf,只需阅读CodeIgniter 2.x具有内置CSRF保护。现在在阅读文档时,我没有发现任何与CSRF相关的内容,只是在config.php文件中将其设置为TRUE,就这样。但是,在我的系统中,我没有使用自动包含CodeIgniter的CSRF保护的表单帮助程序,而是使用HTML的原生 我关心的是我是否需要做任何事情来实现CodeIgniter的CSRF,或者仅仅将选项设置为TRUE就足够了?要在CodeIgniter中启用CRSF,您需要做的就是: 在配置文件中将选项设置为“TRUE” 您的所

只需阅读CodeIgniter 2.x具有内置CSRF保护。现在在阅读文档时,我没有发现任何与CSRF相关的内容,只是在
config.php
文件中将其设置为
TRUE
,就这样。但是,在我的系统中,我没有使用自动包含CodeIgniter的CSRF保护的
表单帮助程序
,而是使用HTML的原生


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

要在CodeIgniter中启用CRSF,您需要做的就是:

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

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

  • 你不需要做任何其他事情

    编辑:我刚刚重读到您不使用form_open()。您可以自己手动将CSRF令牌插入表单中,但这将需要更多的工作。只需将所有表单转换为使用form_open,它就可以正常工作


    (是的,这是CI中为数不多的文档化功能之一-所以我理解为什么你找不到答案-我也花了一段时间)

    有什么想法或文章可以分享给朋友吗?Codeigniter附带源码。你只需要读它,你已经在你的磁盘上了。当然,我可以读源代码。然而,我并没有那么深入地去理解为什么CodeIgniter的CSRF会被破坏。我有兴趣了解更多这方面的情况。也许是我的错,我可能把它和XSS混在一起了。但是,查看CSRF的源代码将a)告诉您它是如何工作的b)显示您的
    方法可能需要使用的功能。不要害怕做不到最好,阅读有帮助。阅读源代码并没有那么复杂。他们甚至留下了评论;)谢谢你,如果它真的返回了401,我该怎么办?那会显示401页吗?