Codeigniter和x2B的授权;CSRF&x2B;乌洛金误差
为Codeigniter设置授权模块uLogin 但是,如果启用了CSRF保护,则会导致错误(Codeigniter和x2B的授权;CSRF&x2B;乌洛金误差,codeigniter,authorization,csrf,Codeigniter,Authorization,Csrf,为Codeigniter设置授权模块uLogin 但是,如果启用了CSRF保护,则会导致错误(“不允许您请求的操作。”) 如果关闭保护,一切正常 如果启用了保护,则在记录和自动刷新后,当前页面将失败 显然是由于代币的差异。如何解决此问题?我不熟悉链接的“模块”,但您需要在登录表单中添加一个隐藏字段,其中包含CSRF验证数据,如下所示: <input type="hidden" name="<?=$this->security->get_csrf_token_na
“不允许您请求的操作。”
)
如果关闭保护,一切正常
如果启用了保护,则在记录和自动刷新后,当前页面将失败
显然是由于代币的差异。如何解决此问题?我不熟悉链接的“模块”,但您需要在登录表单中添加一个隐藏字段,其中包含CSRF验证数据,如下所示:
<input type="hidden"
name="<?=$this->security->get_csrf_token_name();?>"
value="<?=$this->security->get_csrf_hash();?>"
/>
CodeIgniter CSRF的设置可能会导致您的问题。在/config/config.php中,设置$config['csrf\u expire']
确定csrf cookie的有效期。例如,如果该设置为300(5分钟),并且您刷新了登录页面,但在10分钟内没有尝试登录,您将收到错误“您请求的操作不允许。”
,因为CSRF cookie在5分钟前过期
从本质上讲,该错误很可能来自已过期的CodeIgniter CSRF cookie。该cookie是在加载页面时设置的,因此如果带有表单的页面在那里的时间超过$config['csrf\u expire']
设置,则必须在提交表单之前刷新页面,否则将收到该错误。为了避免经常出现错误,请尝试增大$config['csrf\u expire']
的大小
此外,如果您使用CodeIgniter,隐藏的CSRF输入将自动生成。谢谢。所有设置都正确。问题不在设置中。问题完全是上面解释的。谢谢。自动添加隐藏字段形式的CSRF保护时。问题不是缺少字段,服务器返回的身份验证令牌无效。什么身份验证令牌?