【发布时间】:2016-02-14 14:43:51
【问题描述】:
我正在使用 phalcon 2.0.9。
我有一个登录表单,带有 csrf 保护。
这是表单中的代码:
<input type='hidden' id='token' name='{{ security.getTokenKey() }}' value='{{ security.getToken() }}' />
这是控制器中的验证:
if(!$this->security->checkToken()) {
// error code here
}
它在本地主机上完美运行,但是当我将它上传到服务器时,它总是失败。我在登录时使用ajax。 post请求后,session中的csrf token与post中的token不同。
这是什么原因造成的?
【问题讨论】:
-
控制台有错误吗?
-
“...它总是失败”。它以什么方式失败?您收到任何错误消息吗?例如在服务器日志中?
-
$this->security->checkToken() 返回 false,即使我在页面加载后尝试登录。似乎在生成登录页面后,csrf 发生了变化,但我不知道在哪里或为什么。
-
我不会关闭这个问题,因为在这种情况下很难更详细地解释确切的错误。
$this->security->checkToken()在不应该的时候返回 false。 OP应该在问题中提到这一点,但他们在上面的评论中提到了。保持这个开放,伙计们。 -
您的
crypt服务是用alphanumeric token 初始化的吗?
标签: php phalcon csrf-protection