相关疑难解决方法(0)

从ssl移动到非ssl时,会话不保存

我有一个登录屏幕,我强迫ssl,所以像这样:https: //www.foobar.com/login 然后他们登录后,他们被移动到主页:https: //www.foobar.com/dashbaord

但是,我想在登录后将人员从SSL中移除(以节省CPU),因此在检查到他们实际登录https://www.foobar.com/dashbaord后我将其移至 http:// www.foobar.com/dashbaord

好吧,这总是似乎消灭了会话变量,因为当页面再次运行时,它确认它们已登录(如同所有页面一样)并且会话似乎不存在,因此它将它们移动到登录屏幕.

奇怪/结果:

  1. 项目清单
  2. 第二次登录总是有效,并愉快地带我到http://www.foobar.com/dashbaord
  3. 它首次登录时成功创建了一个cookie
  4. 如果我登录两次,然后注销,再次登录,我不需要两次登录(我似乎已经跟踪了cookie存在的事实).如果我删除cookie,我会回到两次登录.
  5. 第二次登录后,我可以从ssl的非ssl移动,会话仍然存在.
  6. 在第一次登录时,移动到非ssl站点会彻底清除会话,手动移回ssl站点仍然会强制我再次登录.
  7. 第二次登录使用与第一次完全相同的机制,通过ssl

我尝试了什么:

  1. 使用Cake的security.level和session.checkagent设置 - 什么都没有
  2. 蛋糕存储在db中的会话(而不是文件系统) - 什么都没有
  3. 在XP机器上测试FF,IE,Chrome.

所以我觉得这与创建cookie但没有被阅读有关.

环境:1.Debian 2. Apache 2 3. Mysql 4 4. PHP 5 5. CakePHP 6.会话正在保存PHP默认,作为文件

php session cakephp

9
推荐指数
1
解决办法
6843
查看次数

Cookie不会在IE中续订/覆盖

我在IE中有一个奇怪的奇怪怪癖.当用户登录到站点时,我正在生成新的会话ID,因此需要覆盖cookie.流程基本上是:

  1. 客户端转到https://secure.example.com/users/login页面,自动接收会话ID
  2. 客户端将登录凭据POST到同一地址
  3. 客户端收到以下set-cookie标头以及302重定向到https://secure.example.com/users/mypage:

    的CakePHP =删除; expires = Sun,05-Apr-2009 04:50:35 GMT; path =/
    CAKEPHP = 98hnIO23 ......; 到期=周一,2010年4月12日04:50:36 GMT; 路径= /; 安全

  4. 客户端应该访问https://secure.example.com/users/mypage,显示新的会话ID.

这适用于除IE之外的所有浏览器(在7和8中测试).IE保留旧的,未经身份验证的会话ID,并重定向回登录页面.它适用于我的本地测试环境(使用自签名证书https://localhost:8443/...),但不适用于实时服务器.

我正在使用CakePHP并只发出一个$this->Session->renew()产生上述cookie头的a.

任何想法如何让IE接受新的cookie?


这是完整的标题:

HTTP/1.0 302 Moved Temporarily
Date: Thu, 08 Apr 2010 02:54:30 GMT
Server: Apache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Set-Cookie: CAKEPHP=deleted; expires=Wed, …
Run Code Online (Sandbox Code Playgroud)

cookies internet-explorer cakephp http-headers

9
推荐指数
1
解决办法
8310
查看次数

CakePHP Cookies变得混乱 - Suhosin相关

出于某种原因,我无法在设置任何页面后从我的CakePHP应用程序中读取任何cookie,唯一返回的是乱码文本.

我的代码就像这样简单:

$this->Cookie->write('Region', 'test');
$reg = $this->Cookie->read('Region');
pr($reg);
Run Code Online (Sandbox Code Playgroud)

我取消注释$ this-> Cookie-> write()行,我得到的是一堆随机控制字符.我最近也升级到了CakePHP 1.3,但AFAIK这不应该影响这样的cookie ......这个工作正常,直到我更换服务器,这一定是我问题的根源.

更新 在进一步探测之后我发现这是一个已知的问题,用于PHP的Suhosin安全补丁影响rand()和srand()方法,我已经配置了Suhosin以允许rand()函数但是它仍在发生,是否存在那里有更有效的工作吗?

php cakephp suhosin

7
推荐指数
1
解决办法
1610
查看次数

OAuth重定向后会话丢失

我使用CakePHP 2.4.我的网站上有OAuth登录信息.%99.5的登录成功,但%0.5失败.我好几个月都有这个错误.我尝试了很多东西来调试和记录,但我仍然没有解决问题.虽然大部分要求都很好,但我需要解决一小部分问题.

场景是这样的:

  • 用户单击"登录"按钮
  • 我从服务器获取请求令牌(例如yahoo,twitter)
  • 我保存oauth_token在用户的会话中
    ,例如会话IDaaa1234
  • CakePHP创建PHPSESSID cookie并在此cookie中保存会话ID.

  • 我将用户重定向到Twitter服务器,用户确认我的应用程序

  • 用户来到我的网站使用OAuth验证
    一)我使用用户oauth_tokenoauth_verifier和获得access_tokens.会话ID是aaa1234.一切都很好.
    b)失败.因为我oauth_token在当前会话中找不到用户.当我检查会话ID时,我看到ID已更改,ID现在已更改bbb2345

对于场景b:
现在看起来用户有新的会话ID.oauth_token在新的会话中找不到.但请注意,旧会话数据存在于/tmp/sessions/文件夹中.

会话不存在会话ID cookie aaa1234.但是我在2天前设置的另一个跟踪cookie存在于cookie中.

我检查用户代理.
当用户第一次到来并且用户从Yahoo服务器返回时,它是相同的.

此故障情况发生在Chrome,Firefox,移动浏览器或其他浏览器中,因此我无法控制浏览器类型.
我应该检查更多以进行诊断?

我的CakePHP core.php设置:

Configure::write('Session', array(  'defaults' => 'cake'  ));
Configure::write('Session.cookie', 'MYPHPSESSID');
Configure::write('Session.timeout', 120);
Configure::write('Security.level', 'medium');
Run Code Online (Sandbox Code Playgroud)

其他设置是默认文件中提到的:https: //github.com/cakephp/cakephp/blob/2.5/app/Config/core.php#L182

编辑:通过使用此答案,我检查了cookie.20%的错误用户禁用了cookie.我问过个人和用户确认的cookie选项.但似乎其他用户没有禁用cookie.还有一些用户使用Android WebViews访问我的网站.在WebView客户端中,我确信我不会禁用cookie.此外,99%的WebView用户都可以成功使用网站.

php cookies session cakephp session-cookies

6
推荐指数
2
解决办法
4628
查看次数

Cakephp Authcomponent会话在使用SSL unforce方法后到期

  1. 在注册期间使用SSL 5页

    https://www.mysite.com/step1

    https://www.mysite.com/step2

    https://www.mysite.com/step3 - Auth组件登录

    https://www.mysite.com/step4

    https://www.mysite.com/step5

在第3步之后,我使用Auth Component创建用户的Session(自动使用户通过Auth组件登录).但是在第5步之后它将重定向到下一页

http://www.mysite.com/welcome

我使用SSL组件非强制方法将HTTPS更改为HTTP.一切正常,但问题是,一旦我从步骤5(HTTPS)到达欢迎页面,我的Auth组件会话到期.我尝试调试它无法找到任何解决方案.请注意,没有HTTPS,所有步骤和会话都可以正常工作

ssl cakephp cakephp-2.0

5
推荐指数
1
解决办法
759
查看次数

登录验证后将SSL重定向到非SSL

我有一个Cakephp 2+站点需要某些操作来要求SSL连接(即登录,密码重置等),但我不要求整个站点是安全的.在实现这一点时,我发现在SSL和非SSL页面之间移动时没有保存Session.我在堆栈/sf/answers/844766961/上发现了这个问题解决了我的问题,但我想知道成本是多少.

上述问题的答案需要在lib/Cake/Model/Datasource /中注释掉一行,如下所示:

if (!isset($sessionConfig['ini']['session.cookie_secure']) && env('HTTPS')){
   // $sessionConfig['ini']['session.cookie_secure'] = 1; // <-- Commented Out
}
Run Code Online (Sandbox Code Playgroud)

这样做有什么安全后果吗?另外,有没有办法在不影响蛋糕核心文件的情况下执行此操作,因为这通常不受欢迎?

提前致谢.

security ssl cakephp cakephp-2.0

1
推荐指数
2
解决办法
408
查看次数