只要瞭解CodeIgniter 2.x具有內置的CSRF保護。現在閱讀文檔後,我沒有發現與CSRF相關的任何內容,只需在config.php
文件中將其設置爲TRUE
即可。但是,在我的系統中,我不使用自動合併CodeIgniter的CSRF保護的form_helper
,而是使用HTML的本機<form>
。在CodeIgniter中啓用CSRF爲TRUE
我的擔心是我需要做什麼來實現CodeIgniter的CSRF,或者只是將選項設置爲TRUE
就足夠了?
只要瞭解CodeIgniter 2.x具有內置的CSRF保護。現在閱讀文檔後,我沒有發現與CSRF相關的任何內容,只需在config.php
文件中將其設置爲TRUE
即可。但是,在我的系統中,我不使用自動合併CodeIgniter的CSRF保護的form_helper
,而是使用HTML的本機<form>
。在CodeIgniter中啓用CSRF爲TRUE
我的擔心是我需要做什麼來實現CodeIgniter的CSRF,或者只是將選項設置爲TRUE
就足夠了?
要啓用笨CRSF所有你需要做的是:
在配置文件中設置選項 「TRUE」
所有窗體MUST使用form_open() helper function。這會自動生成並在表單中包含一個「隱藏的」CSRF標記。 Codeigniter會自動檢查每個表單提交中的這個標記,作爲安全功能的一部分。如果它檢測到CSRF錯誤,它將自動拋出401錯誤。
你不需要做任何事情。
編輯:我只是重新讀你沒有使用form_open()。您可以自己手動將CSRF令牌插入到表單中 - 但這會比所需的更多工作。只需將所有表單轉換爲使用form_open - 並且它將毫無用處地工作。
(是的 - 這是在CI少數不良記錄的功能之一 - 讓我明白爲什麼你不可能找到答案 - 我花了一段時間爲好)
謝謝你,如果它確實返回401,我該如何管理?會顯示一個401頁面嗎? –
任何想法或文章分擔那個阿米戈? –
Codeigniter帶有源代碼。你只需要閱讀它,你已經在你的磁盤上。 – hakre
當然,我可以閱讀來源。然而,我並沒有提前理解CodeIgniter的CSRF爲什麼會被破壞。我很想了解更多。也許要引導。 –