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