2011-09-22 177 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