13

我收到来自我的用户的报告和投诉,他们将使用屏幕并在下一次请求时立即被踢回登录屏幕。它不会一直发生,而是随机发生。

我正在使用 CakePHP 和 Auth 组件,除了这个问题之外,它们似乎运行良好

我曾经在 Cake 论坛上得到一些反馈,这有时是由重置会话的 404 请求引起的,即如果您的图像链接损坏或缺少 favicon 文件。我打开了萤火虫,没有失败的请求,所以我排除了这种可能性,但用户偶尔会被注销。这似乎发生在浏览器和操作系统中。

下面是我的配置设置的摘要: Security.level = high Session.timeout = 1200 // 这意味着我的实际超时应该是 12,000 秒 Session.save = php

我真的不知道是什么导致了这个问题......

4

4 回答 4

9

我的安全性设置为高也有问题。当您将其设置为高时,它会在每个请求上重新生成会话:“如果 'Security.level' 设置为 'high',CakePHP 会话 ID 也会在请求之间重新生成。”

我也有跨浏览器的问题,所以我知道这不是最好的解决方案,但我只是将安全设置更改为中等,并更改了我的会话超时以反映该设置,此后没有任何问题。

于 2009-10-15T18:51:05.170 回答
1

我有一个类似的问题,我发现是core.php文件中的user_agent检查,设置为false!

发生的事情是在页面刷新后会话 id 发生了变化,我被注销了,但是在 Session 对象中有一个错误,说 Attempted Session Hijack!!! 公关($this->会话);

在 core.php 中将此设置为 false!配置::write('Session.checkAgent', false);

于 2010-02-12T10:45:48.333 回答
0

检查您的Auth->allowor ->deny,因为它可能是您的用户访问您的控制器的受限部分或操作。

其次,检查您Sanitize的 CakePHP 的具体情况,因为“高安全性”选项通常会造成麻烦。

404 页面重置会话?我从来没有听说过。

我认为您的问题位于身份验证例程中的某个位置。如果您限制太多事情可能会发生,那么某些请求群将由于缺少属性而失败。

例如:UserOne 试图访问您的网站,他的用户名包含一些字符串,导致对用户名的错误解释。可以在数据库中找到该名称,但身份验证无法将其链接到请求。

像这样的错误总是隐藏在你的代码中,你没想到它们会出现在你的代码中。

于 2009-10-15T16:44:50.133 回答
0

高安全级别将做到这一点。在 core.php 中将其设置为中等

于 2009-10-16T10:47:49.867 回答