2011-09-22 9 views
5

特定のコントローラ/メソッドでCSRFをオフにできるオプションがあるのか​​どうか疑問に思っています。私は自分のサイトをpingしているがCSRFのためにブロックされている別のサイトを持っている。Codeigniter CSRF question

これを回避する方法はありますか?

+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であり、functionがdosomethingの場合、 "www.site.com/api/dosomething"は無効になっています。しかし、誰かが "www.site.com/account/killkitten/api/dosomething"に行くのを止めるにはどうすればいいですか? CSRFが無効になりました。子猫が殺された。いいえ? – twistedpixel