我在CodeIgniter中有一個非常奇怪的CSRF保護問題。我已經確定我使用form_open來開始我的表單,在配置文件中將csrf_protection設置爲true,並且我還確保隱藏的csrf名稱和值字段與csrf cookie匹配,如下所示:http://d.pr/3cfB。CodeIgniter的CSRF令牌問題
發生什麼事情是,當我提交表單時,我得到「遇到錯誤,您請求的操作不被允許。」錯誤,我不知道爲什麼。當我關閉csrf_protection時,表單工作正常。
什麼是更奇怪的是,我使用tank_auth庫進行身份驗證,它也使用form_open作爲登錄表單。當csrf_protection打開時,我確實檢查了登錄表單中是否存在隱藏的csrf字段,並且我能夠提交表單並登錄而沒有任何問題。
想到我能做些什麼來調試這個問題?
嗯,我不確定我是否同意你的看法。一些事情 - 首先,csrf_token_name是CI配置的一部分 - http://d.pr/lQHG,所以'csrf_salemarked_token $ ...'是令牌的名稱。第二,我不想做任何Ajax表單提交。第三,我以同樣的方式創建了我的表單,tank_auth創建了它的表單,我進行了雙重檢查,兩個表單都有一個帶有csrf標記名稱和值的隱藏輸入。 – 2011-03-20 16:00:05
woof ...你是對的令牌名稱。不知何故,我升級時沒有遷移新的配置文件 – coolgeek 2011-03-20 17:23:40