我有一个codeigniter项目,其中一个视图发出ajax post请求。我启用了CSRF保护,但请求仅在第一次成功。下次尝试使用相同的csrf令牌时,cookie中的令牌会发生更改,从而返回禁止的错误。
我找到的一种方法是关闭csrf_regenerate
中的config.php
。但这不会几乎使csrf保护无效吗?有没有办法关闭单页的再生。
除了转换再生之外,有没有办法解决这个问题,保持相同的安全级别。
我不想使用GET请求
更新:我正在使用的代码
var d = {'data':$("#data").text(),"<?php echo $this->security->get_csrf_token_name(); ?>":"<?php echo $this->security->get_csrf_hash(); ?>"};
$.ajax({
url:"controller/function/",
type:"POST",
data: d,
success: function(data)
{
alert(data);
}
});