最近我發現了CSRF攻擊,並很高興地發現CSRF保護已添加到Codeigniter v 2.0.0。Codeigniter CSRF - 它是如何工作的
我啓用了該功能,並看到帶有令牌的隱藏輸入被添加到窗體中,我假設它也將令牌存儲在會話中。在POST請求中,CI是否會自動比較令牌,還是必須手動執行此操作?
最近我發現了CSRF攻擊,並很高興地發現CSRF保護已添加到Codeigniter v 2.0.0。Codeigniter CSRF - 它是如何工作的
我啓用了該功能,並看到帶有令牌的隱藏輸入被添加到窗體中,我假設它也將令牌存儲在會話中。在POST請求中,CI是否會自動比較令牌,還是必須手動執行此操作?
僅當使用form_open()
函數時,纔會將CSRF標記作爲隱藏輸入添加到窗體中。
具有CSRF標記值的Cookie由Security類創建,並在必要時爲每個請求重新生成。
如果存在$_POST
數據,則Cookie由Input類自動驗證。如果發佈的令牌與Cookie的值不匹配,則配置項將顯示錯誤並且無法處理數據$_POST
。
所以基本上都是自動的 - 你所要做的就是在$config['csrf_protection']
中啓用它,並在表單中使用form_open()
函數。
一篇好文章,我發現,說明它非常好:https://beheist.com/blog/csrf-protection-in-codeigniter-2-0-a-closer-look.html
當CSRF保護這個令牌自動啓用安全類檢查(它POST令牌COOKIE令牌進行比較)
請參閱此鏈接 - Used CSRF Tokens using form helper or Manually
的文章解釋瞭如何解決與CSRF令牌
本文還介紹瞭如何「禁用CSRF對某類網址(其用作Web服務的URL)」
謝謝你爲澄清!我很高興我選擇CI作爲我的框架:) – CyberJunkie 2011-06-05 19:50:55
謝謝,但鏈接已經死亡 – 4Jean 2017-01-08 16:50:34
鏈接已更新,感謝4Jean。 – 2017-01-10 21:18:50