CodeIgniter CSRF和localhost

sea*_*tes 1 php codeigniter csrf

我目前正在本地工作(myhostname.local)在CodeIgniter中开始一个开发项目,我正在尝试做一个简单的登录表单提交,并且CSRF保护不起作用.我收到错误:

遇到错误
不允许您请求的操作.

有几点需要注意:

  1. 我正在使用CI Reactor 2.0.2
  2. 我从本地主机(myhostname.local)运行所有内容

我的表格:

<?=form_open('home/login');?>
... username/password fields in here ...
<?=form_close();>
Run Code Online (Sandbox Code Playgroud)

我的控制器:

public function login()
{

    $this->form_validation->set_rules('email','Email','trim|required');
    $this->form_validation->set_rules('password','Password','required');

    if($this->form_validation->run() === FALSE)
    {
        ... form did not pass validation ...
    }
    else
    {
        ... form passed ...
    }

}
Run Code Online (Sandbox Code Playgroud)

当我将表单提交到http://myhostname.local/home/login时,我收到上述错误.

任何关于为什么会发生这种情况的帮助非常感谢.

谢谢!肖恩

sea*_*tes 9

似乎在config.php文件中为cookie设置值会产生很大的影响.一旦我将这些设置恢复为默认值,一切都开始正常工作:

$config['cookie_prefix']    = "";
$config['cookie_domain']    = "";
$config['cookie_path']    = "/";
$config['cookie_secure']    = FALSE;
Run Code Online (Sandbox Code Playgroud)

谢谢!肖恩