【发布时间】:2011-08-16 02:14:42
【问题描述】:
我目前正在本地 (myhostname.local) 工作,以在 CodeIgniter 中开始一个开发项目,并尝试提交一个简单的登录表单,但 CSRF 保护不起作用。我得到了错误:
遇到错误
您请求的操作不被允许。
有几点需要注意:
- 我正在使用 CI Reactor 2.0.2
- 我正在从本地主机 (myhostname.local) 运行所有内容
我的表格:
<?=form_open('home/login');?>
... username/password fields in here ...
<?=form_close();>
我的控制器:
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 ...
}
}
当我将表单提交给http://myhostname.local/home/login 时,我收到了上述错误。
非常感谢任何有关为什么会发生这种情况的帮助。
谢谢! 肖恩
【问题讨论】:
-
这种情况是每次都发生,还是仅有时发生,还是仅在验证失败后发生?另外,你确定它只是 localhost - 这对你来说是否适用于实时服务器?
-
每次都会发生。我还没有在实时服务器上测试过它。我会这样做并告诉你。
-
这可能会有所帮助,特别是因为标题是“CodeIgniter CSRF and localhost”,这可能与未设置cookie有关,您可以设置和读取cookie吗?确保您在 html 源代码中也看到了 CSRF 令牌,我知道这听起来很愚蠢,但最好先检查最简单的东西。
-
你加载表单验证库了吗?只是为了确保......
-
@Wesley Murch - 我看到了 cookie,我可以设置 cookie,但 CSRF 没有 cookie。此外,CSRF 令牌在源中。根据您的要求,我已将网站上传到实时服务器:modernstitches.seangates.com
标签: php codeigniter csrf