Codeigniter CSRF问题

5

我正在思考是否有选项可以在特定的控制器/方法中关闭CSRF。我有另一个站点会ping我的网站,但由于CSRF而被阻止。

有没有办法绕过这个问题?


1
你可以考虑通常禁用CI CSRF“保护”,因为它已经失效了。相反,要知道自己在做什么,并提供自己的合理性检查以确保安全(对于相关的控制器,这是必须的)。 - hakre
6
有它是损坏的链接吗?这是我第一次听到。 - lsl
1个回答

7
创建一个 pre_system 钩子,然后将以下代码放入您的钩子控制器中:
if(stripos($_SERVER["REQUEST_URI"],'/controller/function') !== FALSE)
{
    $CFG =& load_class('Config', 'core');
    $CFG->set_item('csrf_protection', FALSE);
}

参考资料:http://codeigniter.com/forums/viewreply/869900/


我不想打扰,但我想说,虽然这个方法可行,但并不安全,人们应该意识到这一点。例如,如果您的控制器是api,函数是dosomething,那么“www.site.com/api/dosomething”将被禁用。但是,有什么能阻止别人去“www.site.com/account/killkitten/api/dosomething”吗?CSRF已禁用。小猫被杀了。不是吗? - twistedpixel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,