0
首先,這個很少發生。表單本身已成功提交500次以上。我們收到了大約3份報告,其中用戶收到「遇到錯誤:您請求的操作不被允許」。Codeigniter CSRF有時會引發錯誤
這個特定的錯誤可以在Security Class php代碼中找到,並且僅當csrf標記不行,或者如果一個或兩個(cookie/post)缺失時纔會顯示此特定錯誤。
這裏有一些相關的配置值:
$config['cookie_prefix'] = 'prefix_';
$config['cookie_domain'] = '';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = FALSE;
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf';
$config['csrf_cookie_name'] = 'csrf';
$config['csrf_expire'] = 86400;
$config['csrf_regenerate'] = FALSE;
至於說,在幾乎所有情況下,用戶都沒有問題提交表單。當用戶確實遇到問題時,我嘗試通過使用相同的輸入值和完全相同的瀏覽器/操作系統(啓用了cookie和javascript,沒有瀏覽器插件)提交表單來複制錯誤。但我無法模擬錯誤。
什麼可能導致Codeigniter有時會拋出錯誤?
他們可以提交表單兩次。但他們必須快速。頁面延遲非常低,我們會檢查重複項。除此之外,'$ config ['csrf_regenerate'] = FALSE;'應該防止再生csrf標記。 – Diederik