2011-09-22 223 views
5

我只是想知道有什么选择,我可以在特定的控制器/方法中关闭CSRF。我有另一个网站,我的网站,但由于CSRF被阻止。Codeigniter CSRF问题

有什么办法可以解决这个问题吗?

+1

你可以考虑到通常情况下禁用CI CSRF的“保护”,因为它是坏了。相反,要知道自己做了什么,并自己提供理智检查以确保安全(无论如何,您需要对控制器进行相应处理)。 – hakre

+6

了解它如何被破坏的链接?首先我听说的是全部。 – Louis

回答

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/

+0

我讨厌碰到这个,但我只想说,虽然这个工作,它并不是安全的,人们应该知道。例如,如果您的控制器是API,并且函数是dosomething,那么您已禁用“www.site.com/api/dosomething”。但是,如何阻止某人前往“www.site.com/account/killkitten/api/dosomething”?禁用CSRF。小猫死亡。没有? – twistedpixel